Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP GET //protected/resource
-
DeliveryURI normalizer preserves double slash intact
-
Exploitmod_auth directory regex mismatch; no 401 challenge issued
-
Executionmod_get receives un-collapsed path
-
PersistOS normalizes // to / transparently
-
ImpactProtected file content returned to unauthenticated attacker
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Exploitation requires that the target runs Erlang/OTP's inets httpd with at least one mod_auth directory-protection block explicitly defined in the httpd configuration. Deployments that do not use inets as an HTTP server, or that use inets httpd without mod_auth directory blocks, are entirely unaffected-there is no authentication mechanism to bypass. The attack is network-accessible with no credentials or user interaction required (CVSS PR:N/UI:N confirmed by CVSS 4.0 vector). Limiting factors: (1) inets httpd is not a default-enabled component of OTP-it must be explicitly started and configured; (2) only confidentiality is impacted-the attacker can read files served by mod_get but cannot write, delete, or execute; (3) the same bypass also defeats mod_security per-path accounting, but that is a secondary effect of the same root cause; (4) OTP before 17.0 may or may not be affected-the vendor has not confirmed this range. On case-sensitive filesystems (Linux), case variations in the path do not additionally bypass mod_auth after the fix adds caseless regex matching, but prior to patching, case-only bypass via the same mechanism may apply on case-insensitive filesystems. |
| Impact | The CVSS 4.0 base score of 8.2 reflects a network-accessible (AV:N), low-complexity (AC:L), unauthenticated (PR:N), no-interaction (UI:N) attack producing high confidentiality impact (VC:H) with no integrity or availability loss. The AT:P (Attack Requirements: Present) modifier accurately captures the key gating condition: a mod_auth directory-protection block must be explicitly configured. Deployments that do not use inets httpd or do not configure mod_auth are entirely unaffected, meaningfully lowering real-world exposure relative to the raw score. No EPSS data was supplied in the source intelligence, so exploitation probability cannot be quantified numerically; however, the manipulation-prepending a slash to a URL-is trivially reproducible from the public description alone, making opportunistic exploitation straightforward once an operator identifies a vulnerable inets httpd instance. No CISA KEV listing is present, and no public exploit code has been identified, so this is not a confirmed in-the-wild campaign. Defenders running inets httpd with mod_auth, particularly on internet-facing endpoints, should treat this as a genuine near-term patching priority; teams running OTP without inets httpd can deprioritize. |
| Exploit ScenarioDerived | An attacker targeting an inets httpd deployment sends a plain HTTP GET request to //protected/secret.conf (or any variant with extra leading or intra-path slashes, e.g., /protected//secret.conf). The httpd URI normalizer passes the doubled slash through unchanged, mod_auth's unanchored regex fails to match the protected directory prefix, no 401 challenge is issued, and mod_get serves the file after the OS silently normalizes the path. No credentials, prior reconnaissance, or special tooling are required beyond knowing that the target runs inets httpd with a mod_auth-protected directory; no public exploit code has been identified, but the technique is directly derivable from the published description. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Authentication bypass in Erlang/OTP inets httpd allows remote unauthenticated attackers to read files inside mod_auth-protected directories across OTP 17.0 through 29.0 by prefixing the request URI with an extra slash. The inets URI normalizer preserves doubled slashes that RFC 3986 dot-segment removal does not collapse, causing mod_auth's directory-protection regex to silently fail to match while the OS transparently serves the protected file. No CISA KEV listing or public exploit code has been identified at time of analysis; CVSS 4.0 scores this 8.2 with high confidentiality impact contingent on mod_auth being explicitly configured.
RemediationAI
Vendor-released patches are available: upgrade to OTP 27.3.4.17 or later (inets 9.3.2.7+) for the OTP-27 branch, OTP 28.5.0.6 or later (inets 9.6.2.3+) for the OTP-28 branch, or OTP 29.0.6 or later (inets 9.7.2+) for OTP-29, per the advisory at https://github.com/erlang/otp/security/advisories/GHSA-r4vv-vc2c-2fw6 and upstream commits bac19eb3, d8878dec, and 9641944a. If immediate patching is not possible, placing the inets httpd behind a reverse proxy such as nginx or HAProxy that normalizes request URIs before forwarding is an effective compensating control, as production-grade proxies collapse consecutive slashes by default; note this does not address any local or direct-TCP access paths. Alternatively, firewall or ACL rules that restrict access to protected-directory paths to known-trusted IP ranges reduce exposure without requiring application changes. Neither workaround repairs the mod_security per-path accounting bypass documented in the CVE description. Teams running OTP without the inets httpd component, or without mod_auth directory-protection blocks configured, require no action.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in Erlang/OTP's inets application, specifically its built-in HTTP server (httpd), and is classified as CWE-50 (Path Equivalence). The root cause is inconsistent URI normalization across the httpd request pipeline: httpd_request:validate_uri/1 calls uri_string:normalize/1, which performs RFC 3986 dot-segment removal but does not collapse consecutive empty path segments (doubled slashes). The non-canonical URI then flows to mod_alias:real_name/3, which concatenates the document root with the URI to build a filesystem path, then to mod_auth:secret_path/3, which runs an unanchored Erlang regular expression against that path to determine whether it falls within a configured protected-directory block. The doubled slash breaks the contiguous substring the regex expects, so no authentication challenge is issued. Simultaneously, mod_get passes the same path to the OS, which collapses consecutive slashes transparently and returns the protected file. The same path mismatch defeats per-path accounting in mod_security. The fix (commits bac19eb, d8878de, 9641944) introduces httpd_util:collapse_slashes/1 and invokes it at three pipeline points-httpd_request, mod_alias percent-decode path, and mod_auth-to ensure all stages see the same canonical path. Affected CPE: cpe:2.3:a:erlang:otp across OTP 17.0-27.3.4.17, 28.0-28.5.0.6, and 29.0-29.0.6.
Know when Erlang gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Network-reachable with no credentials required per PR:N in input vector; high confidentiality only, no integrity or availability impact, scope unchanged.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
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.
Technical POC Analysis
CWE-50 (Path Equivalence: '//multiple/leading/slash').
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Erlang/OTP inets httpd versions 17.0-29.0 contain an authentication bypass (CVE-2026-66835, CVSS 8.2) allowing remote unauthenticated attackers to read files protected by mod_auth access controls. Organizations running Erlang-based infrastructure should assess affected OTP versions immediately and prioritize patching to prevent unauthorized data exposure.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Erlang/OTP SSH server allows unauthenticated remote code execution by exploiting a flaw in SSH protocol message handling
The Erlang otp TLS server answers with different TLS alerts to different error types in the RSA PKCS #1 1.5 padding. Rat
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
Rebar3 versions 3.0.0-beta.3 to 3.13.2 are vulnerable to OS command injection via URL parameter of dependency specificat
Multiple CRLF injection vulnerabilities in the FTP module in Erlang/OTP R15B03 allow context-dependent attackers to inje
A local privilege escalation vulnerability was discovered in Erlang/OTP prior to version 23.2.3. Rated high severity (CV
An issue was discovered in Erlang/OTP 18.x. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitab
In Erlang/OTP before 23.3.4.15, 24.x before 24.3.4.2, and 25.x before 25.0.2, there is a Client Authentication Bypass in
Erlang/OTP's ssl application in affected releases (OTP 22.2 through the fixed 27.3.4.18, 28.5.0.7 and 29.1.1) will compl
RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b
TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged
An on-path attacker can force an Erlang/OTP TLS 1.2 or DTLS client to accept an anonymous cipher suite not offered by th
Same technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Proxy LTS 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Manager Server LTS 4.3 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-69245
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB