CVE-2026-66835: httpd mod_auth directory protection bypassed by a doubled slash in the request path
Path Equivalence vulnerability in Erlang/OTP inets httpd allows a remote unauthenticated attacker to read files inside a modauth protected directory by prefixing the request path with an extra slash.
httpdrequest:validateuri/1 normalises the request URI with uristring:normalize/1, which performs RFC 3986 dot-segment removal but does not collapse empty path segments, so a doubled slash survives. modalias:realname/3 concatenates the document root with that URI, and modauth:secretpath/3 then decides whether the result lies inside a protected directory block by running the configured directory path as an unanchored regular expression against it. The doubled slash breaks the contiguous substring the regex needs, so the request is treated as unprotected and no authentication challenge is issued, while modget opens the same path and the operating system collapses the doubled slash and returns the protected file. The same path mismatch also evades the per-path accounting in modsecurity.
This issue affects OTP from OTP 17.0 before OTP 27.3.4.17, from OTP 28.0 before OTP 28.5.0.6, and from OTP 29.0 before OTP 29.0.6, corresponding to inets from 5.10 before 9.3.2.7, from 9.4 before 9.6.2.3, and from 9.7 before 9.7.2. Whether OTP before OTP 17.0, corresponding to inets before 5.10, is affected is unknown.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 27.3.4.17 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 28.5.0.6 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 29.0.6 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 9.3.2.7 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 9.6.2.3 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 9.7.2
Event History
Frequently Asked Questions
Which deployments are exposed?
Erlang/OTP inets httpd deployments that use mod_auth to protect directory blocks are exposed when running OTP 17.0 before 27.3.4.17, OTP 28.0 before 28.5.0.6, or OTP 29.0 before 29.0.6.
What does an attacker need to exploit this issue?
An attacker only needs remote unauthenticated access to the httpd service and knowledge of a path within a mod_auth-protected directory. They can prefix the request path with an extra slash so that authorization checks treat it as unprotected while the operating system resolves it to the protected file.
Does this affect mod_security controls as well?
Yes. The same path mismatch can evade mod_security per-path accounting, because the doubled-slash path used during accounting differs from the path ultimately opened by the operating system.
What is the remediation?
Upgrade to OTP 27.3.4.17 or later in the OTP 27 series, OTP 28.5.0.6 or later in the OTP 28 series, or OTP 29.0.6 or later in the OTP 29 series.