hMailServer: Uncontrolled search path element in MySQL plugin loading
Summary
hMailServer 6.2.3 to 6.3.7 on Windows with a MySQL or MariaDB database builds the plugin folder path incorrectly when the installation path contains certain characters between U+0080 and U+00FF. A local authenticated user who can create a folder at the resulting location can place a DLL there, which runs as the hMailServer service account (LocalSystem or a virtual account) when the service connects to the database. The server's own database commands can also load a DLL from the root of a writable drive in an administrator's session. The default installation path is ASCII and not affected, and Linux builds are not affected.
Affected
- hMailServer 6.2.3 to 6.3.7 on Windows
- Only with a MySQL or MariaDB database
- Only if the installation path contains a character between U+0080 and U+00FF
- Default installation under Program Files is not affected
- Linux builds are not affected
Fixed in
- Fixed in hMailServer 6.3.8
Workaround
- No vendor workaround is known for systems that cannot be upgraded.
- Interim measures, not confirmed by the vendor: check the installation path for characters between U+0080 and U+00FF, confirm that only administrators can create folders at the root of the system drive and other drives, and restrict local logon to the server to trusted administrators.
Exploitation
Unknown. No public proof of concept was found in the research. One aggregator lists the CVE as not known to be exploited; this is unverified. CISA KEV was not checked.
Our recommendation
- Upgrade to hMailServer 6.3.8 and verify that the installer's Authenticode signature is valid and signed by Progressive Robot Ltd.
- Before upgrading, test the update, as a user report describes mail queuing for some domains after 6.3.7 or 6.3.8.
- Check whether any installation uses a MySQL or MariaDB database and a non-ASCII installation path.
- Restrict local logon to the server and review who can create folders at the root of drives.
- Until the upgrade, apply the interim measures listed above.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- CVE Record CVE-2026-126607 www.cve.org
- GitLab issue #116 (hMailServer) gitlab.com
- GitLab release hMailServer 6.3.8 gitlab.com
- Progressive Robot hMailServer 6.3.8 download www.progressiverobot.com
- OffSeq threat radar CVE-2026-126607 radar.offseq.com
- CVE details (threatint) cve.threatint.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 11 Nov 2026, 10:24.
Original description (NVD)
Progressive Robot hMailServer 6.2.3 through 6.3.7 on Windows, with a MySQL or MariaDB database, hands the bundled MariaDB Connector/C the folder of its authentication plugins (the plugin folder in the installation's Bin folder) as Latin-1 bytes, which the client reads in the system's ANSI code page when it builds a plugin's path and loads the plugin with LoadLibraryExA, which allows a local authenticated user to execute code as the hMailServer service's account (LocalSystem, or the service's virtual account for a new installation from 6.3.4) by creating the folder those bytes name in the code page and placing in it a DLL with a plugin's name, when the installation folder's path holds a character between U+0080 and U+00FF whose byte the code page reads as another character, and none above U+00FF, and the user can create that other folder (by default any authenticated user may create a folder directly under the root of the system drive). The server converted the path with the C runtime's wcstombs_s in the C locale, which writes each character up to U+00FF as the byte of the same value: on code page 1252 those bytes are the same letters, while on another code page, such as 1251, or on a UTF-8 code page, they name another folder. The client loads the plugin the database server names in its greeting, unless it is built in, and any plugin the server names in an authentication switch, and tries again at each connection while a load fails, so with a MySQL 8.0 or later server, whose greeting names caching_sha2_password by default, the DLL is loaded at the next connection the service makes, whatever plugin the database account uses; a DLL's entry point runs when it is loaded. A path holding any character above U+00FF was handed over as an empty string, whatever the code page, from which the client makes a plugin's name at the root of the current drive: for the service, whose current folder is System32, that is the root of the system drive, where by default only administrators can create a file, but the server's own database commands (hMailServer.exe --check-database, --upgrade-database and the others from 6.3.4, and the /Debug and /Test console modes from 6.2.3) run in the folder they are started from - the product tells administrators to run them from an elevated prompt in the Bin folder, and the setup of 6.3.4 and 6.3.5 ran two or three of them itself with the Bin folder as their working folder for a new installation with an external database - so a DLL that a local authenticated user placed under a plugin's name at the root of a drive other users may write, such as a FAT or exFAT volume, was loaded into the administrator's process at the command's first connection to a MySQL 8.0 or later server. 6.3.8 fixes both cases: it hands the folder in the code page's bytes or by its short (8.3) name, and where neither can be written, a folder under the Windows system folder that holds no plugin and that only administrators can create, or else refuses the connection before attempting it; it never hands the empty value or a folder the current drive completes. The configuration is not the default: the default installation folder, under Program Files, is ASCII. Linux builds set no plugin folder and are not affected.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
