CVE-2026-73270: httpd mod_auth directory protection bypassed by request path casing on case-insensitive filesystems
Improper Handling of Case Sensitivity vulnerability in Erlang/OTP inets httpd allows a remote unauthenticated attacker to read files inside a modauth protected directory by requesting them with different casing, on deployments whose filesystem is case-insensitive.
modauth:secretpath/3 decides whether a resolved filesystem path lies inside a protected directory block by running the configured directory path through re:run/3 without the caseless option. A request for /secret/file against a directory configured as /Secret therefore does not match, so the request is treated as unprotected and no authentication challenge is issued, while the filesystem resolves the differently cased path to the same file and modget serves it. Deployments on case-sensitive filesystems are unaffected, because there the filesystem itself rejects the mismatched casing.
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
Erlang/OTP inets httpd (mod_auth)to a version that resolves this vulnerability.Fixed in 27.3.4.17 - Upgrade
Upgrade
Erlang/OTP inets httpd (mod_auth)to a version that resolves this vulnerability.Fixed in 28.5.0.6 - Upgrade
Upgrade
Erlang/OTP inets httpd (mod_auth)to a version that resolves this vulnerability.Fixed in 29.0.6
Event History
Frequently Asked Questions
Which deployments are exposed?
Only deployments using a case-insensitive filesystem are affected. Deployments on case-sensitive filesystems are unaffected because paths with mismatched casing are rejected by the filesystem.
Does exploitation require credentials or prior access?
No. A remote unauthenticated attacker can exploit the issue by requesting a file in a protected directory using casing that differs from the directory path configured for mod_auth.
Which releases contain fixes?
Fixed releases are OTP 27.3.4.17, OTP 28.5.0.6, and OTP 29.0.6. The corresponding fixed inets releases are 9.3.2.7, 9.6.2.3, and 9.7.2.
Are older OTP and inets releases affected?
OTP releases before 17.0, corresponding to inets releases before 5.10, have unknown affected status. They should not be assumed unaffected based on the available information.