CVE-2026-126623: Inefficient Algorithmic Complexity in hMailServer
Inefficient algorithmic complexity in the JSON reader of Progressive Robot hMailServer 6.3.6 and 6.3.7 allows a remote attacker to hold the server's mail delivery threads or its REST API's worker threads, making mail delivery, the REST API and the webmail unavailable. 6.3.6 fixed CVE-2026-107574, in which reading a JSON object searched the member names already read for each new name, by keeping the names in a hash set; the set uses the standard library's hash, which takes no secret, so member names chosen to fall in one bucket of it still cost time growing with the square of their number. Against the released reader, one such object of 16 MB took about 5 seconds to read in the Linux build, and one of under 6 MB about 23 seconds in the Windows build, where objects of the same sizes with other names took under a tenth of a second. A remote unauthenticated attacker reaches the reader by mailing such an object as a TLS-RPT report, up to 16 MB once decompressed, to a hosted domain's report mailbox, where an administrator has set one; it is read on a mail delivery thread (ten by default), and those threads deliver all mail, local and outbound, so a stream of such reports stops all delivery for as long as it continues. It is also reached without an account through the reply to a password-protected message, with the message's link alone, where the REST API is on (it is off by default) and a public base URL for such links is set; and by any account through the webmail's routes granted 16 MB, and by an application's API key through the send API. Each such request holds one of the REST API's four worker threads, in the process that also serves SMTP, IMAP and POP3.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Progressive Robot hMailServerto a version that resolves this vulnerability.Fixed in 6.3.8 - Configuration
Set RestApiPort to 0 to disable the REST API when it is not required.
hMailServer REST API RestApiPort = 0 - Configuration
Switch OpenPGP off using portal_enabled under /api/v1/settings/openpgp, and disable openpgp_portal_enabled for any domain or account where it is enabled.
hMailServer webmail OpenPGP portal_enabled / openpgp_portal_enabled = off - Compensating control
If the REST API remains enabled, restrict who can reach it or place a reverse proxy in front of it that holds request bodies well below 16 MB.
- Operational
Clear each domain's report mailbox, or move the report mailbox off the domains hosted by the server, so no TLS-RPT report is read by the server.
- Operational
Restart the hMailServer service to end a busy thread.