CVE-2026-66835 json
httpd mod_auth directory protection bypassed by a doubled slash in the request path
published 2026-09-01 2 mo ago modified 2026-09-08 2 mo ago also EUVD-2026-69245
- cvss
- 8.2
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.0%
- EPSS 1.0% chance of exploitation in 30 days, percentile 62%
- public exploits
- 0
- none known
Summary
Path Equivalence vulnerability in Erlang/OTP inets httpd allows a remote unauthenticated attacker to read files inside a mod_auth protected directory by prefixing the request path with an extra slash.
httpd_request:validate_uri/1 normalises the request URI with uri_string:normalize/1, which performs RFC 3986 dot-segment removal but does not collapse empty path segments, so a doubled slash survives. mod_alias:real_name/3 concatenates the document root with that URI, and mod_auth:secret_path/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 mod_get 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 mod_security.
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.
Patch / fix
- Erlang OTP 9.3.2.7, 9.6.2.3, 9.7.2, 27.3.4.17, 28.5.0.6, 29.0.6
- erlang Debian 13 1:27.3.4.1+dfsg-1+deb13u4
- erlang Debian 14 1:29.0.6+dfsg-1
debian advisories DEBIAN-CVE-2026-66835
- erlang Ubuntu 22.04 LTS 1:24.2.1+dfsg-1ubuntu0.7
- erlang Ubuntu 24.04 LTS 1:25.3.2.8+dfsg-1ubuntu4.7
- erlang Ubuntu 26.04 LTS 1:27.3.4.6+dfsg-1ubuntu0.1
- erlang Ubuntu Pro 14.04 LTS 1:16.b.3-dfsg-1ubuntu2.2+esm2
- erlang Ubuntu Pro 16.04 LTS 1:18.3-dfsg-1ubuntu3.1+esm3
- erlang Ubuntu Pro 18.04 LTS 1:20.2.2+dfsg-1ubuntu2+esm3
- erlang Ubuntu Pro 20.04 LTS 1:22.2.7+dfsg-1ubuntu0.5+esm2
ubuntu advisories UBUNTU-CVE-2026-66835
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- erlang27 hummingbird 1 27.3.4.17-0.1.hum1
- erlang27-et hummingbird 1 27.3.4.17-0.1.hum1
- erlang27-wx hummingbird 1 27.3.4.17-0.1.hum1
- erlang27-ftp hummingbird 1 27.3.4.17-0.1.hum1
- erlang27-ssh hummingbird 1 27.3.4.17-0.1.hum1
- erlang27-ssl hummingbird 1 27.3.4.17-0.1.hum1
- erlang27-asn1 hummingbird 1 27.3.4.17-0.1.hum1
- erlang27-edoc hummingbird 1 27.3.4.17-0.1.hum1
red hat advisories RHSA-2026:62531
- github.com/erlang/otp@bac19eb commit
- github.com/erlang/otp@d8878de commit
- github.com/erlang/otp@9641944 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-66835 updated cvss 7.5
inets: Erlang/OTP inets httpd: Directory protection bypass allows information disclosure
-
Red Hat Hardened Images erlang27 27.3.4.17-0.1.hum1, erlang27-et 27.3.4.17-0.1.hum1, erlang27-wx 27.3.4.17-0.1.hum1, erlang27-ftp 27.3.4.17-0.1.hum1, erlang27-ssh 27.3.4.17-0.1.hum1, erlang27-ssl 27.3.4.17-0.1.hum1, +33 morefixed: vendor fix RHSA-2026:62531
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.97% chance of exploitation in the next 30 days, higher than 62% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.2 | 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 |
| CNA | 4.0 | 8.2 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected products
- Erlang OTP
Classification
- Weakness
-
- CWE-50 Path Equivalence: '//multiple/leading/slash'
References
-
github.com
/erlang/otp/commit/bac19eb3dbd96cc49b6d8cabc1c04248bf8c79f6
patch
-
github.com
/erlang/otp/commit/d8878dec0ececc2eab18e47bb18b472f224ca633
patch
-
github.com
/erlang/otp/commit/9641944a2efbf55bea760f8ff7ba777fe3a0961c
patch
-
github.com
/erlang/otp/security/advisories/GHSA-r4vv-vc2c-2fw6
vendor-advisory, related
-
cna.erlef.org
/cves/CVE-2026-66835.html
related
-
osv.dev
/vulnerability/EEF-CVE-2026-66835
related
- erlang.org /doc/system/versions.html#order-of-versions
Sources
- CVE List CVE-2026-66835
- NVD CVE-2026-66835
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.