Summary
CVE-2026-66835 is a path equivalence vulnerability (CWE-50) in the inets HTTP server (httpd) shipped with Erlang/OTP. The flaw allows an unauthenticated, remote attacker to bypass directory-level access control enforced by the mod_auth module and read files that were intended to be protected. The issue affects multiple OTP and inets release lines and carries a High severity rating (CVSS v4.0 base score 8.2).
Technical details
- Root cause:
httpdbuilds the resolved filesystem path by concatenating the configured document root with the request URI after the URI has been passed throughuri_string:normalize/1. Normalization removes./..segments but does not collapse repeated (doubled) leading slashes. - Trigger conditions: An attacker prefixes the path to a
mod_auth-protected resource with an extra slash (e.g. requesting//secret/fileinstead of/secret/file). - Attack vector: The doubled slash breaks the contiguous string match used by
mod_auth‘s directory-pattern matching, so the request is not recognized as targeting the protected directory and the authentication/authorization check is skipped. However, when the underlying operating system’s filesystem layer later opens the file, it collapses the doubled slash and resolves it to the protected path anyway, serving the file contents to the unauthenticated requester. - Impact: Unauthenticated disclosure of files served from directories that administrators had explicitly restricted with
mod_auth, effectively bypassing HTTP authentication enforced by the Erlang/OTP built-in web server. Confidentiality impact is High; integrity and availability are not affected.
Affected software
- Erlang/OTP (via the
inetshttpdmodule):- OTP 17.0 up to (but not including) 27.3.4.17
- OTP 28.0 up to (but not including) 28.5.0.6
- OTP 29.0 up to (but not including) 29.0.6
inetslibrary versions:- 5.10 up to (but not including) 9.3.2.7
- 9.4 up to (but not including) 9.6.2.3
- 9.7 up to (but not including) 9.7.2
Severity
- CVSS v4.0 Base Score: 8.2 (High)
- Vector:
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade Erlang/OTP and/or the
inetslibrary to a patched release:- OTP 27.3.4.17 or later
- OTP 28.5.0.6 or later
- OTP 29.0.6 or later
inets9.3.2.7, 9.6.2.3, or 9.7.2 or later (matching your OTP release line)
- If patching is not immediately possible:
- Place a reverse proxy (e.g., nginx or Apache) in front of
httpdand configure it to normalize/collapse duplicate slashes and reject malformed paths before they reach the Erlang inets server. - Do not rely solely on
mod_authdirectory-pattern matching for access control; add application-level authentication checks for sensitive resources. - Restrict network access to the
httpdservice to trusted hosts/networks where feasible until patched.
- Place a reverse proxy (e.g., nginx or Apache) in front of

