CVE-2026-126614: Improper Restriction of Excessive Authentication Attempts in hMailServer
The web services listener of Progressive Robot hMailServer 6.3.3 through 6.3.7 does not apply the server's IP ranges to the connections it accepts, which allows a remote unauthenticated attacker to go on guessing account passwords at the listener's sign-ins after the auto-ban has banned the attacker's address. The listener is off by default (WebServicesHttpPort and WebServicesHttpsPort 0). From 6.3.3 its CardDAV, and from 6.3.4 its CalDAV and its Outlook Autodiscover answer to a request that carries credentials, sign an account in with HTTP Basic over HTTPS. A failed sign-in there counts towards the auto-ban as a failed logon on any other protocol does: when the failures counted from one address reach MaxInvalidLogonAttempts (3 within 30 minutes by default), the server writes an IP range that refuses the address for AutoBanMinutes (60 by default), and the SMTP, POP3, IMAP and ManageSieve listeners refuse it. The web services listener asked no IP range when it accepted a connection (in 6.3.3 nothing, from 6.3.4 the country policy alone), so it went on serving such an address, whether its ban had been earned there or on another protocol, and also an address that an administrator's IP range allowing nothing holds. Each failed sign-in there closed only its own connection, and the next connection was accepted, during the ban and after it. The firewall rule and command the auto-ban can drive (AutoBanFirewall and AutoBanCommand, off by default) are told only the SMTP, POP3 and IMAP ports, so that the firewall rule and the packaged hook did not close the listener's ports, and the fail2ban jail packaged for Linux (off by default) lists only the mail and ManageSieve ports. The only limit left on the guesses at one account there was the per-name lockout (AccountLockoutThreshold in hMailServer.ini, 0, off, by default), which has a separate defect fixed in the same release. The flaw is reached on the listener's HTTPS port: behind a TLS-terminating proxy the listener sees the proxy's address for every client, and a ban never named the client there.
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
Enable per-account lockout by setting AccountLockoutThreshold in hMailServer.ini to a value above 0.
hMailServer AccountLockoutThreshold = above 0 - Configuration
Keep WebServicesHttpsPort set to 0 until the upgrade is applied.
hMailServer web services listener WebServicesHttpsPort = 0 - Configuration
Turn on the packaged fail2ban jail and add the web services listener ports to its port line so repeated listener failures are blocked.
Linux fail2ban jail enabled and port line = enabled; include the web services listener ports - Configuration
Configure an administrator-supplied AutoBanCommand to block the banned address on the listener ports for as long as the ban lasts.
hMailServer AutoBanCommand = custom command that blocks the web services listener ports - Compensating control
If the web services HTTPS listener must remain enabled, restrict it to trusted networks only or block its listener ports below the server.