Skip to main content

Erlang OTP inets CVE-2026-66835

| EUVDEUVD-2026-69245 HIGH
Path Equivalence: '//multiple/leading/slash' (CWE-50)
2026-09-01 EEF
8.2
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send HTTP GET //protected/resource
  2. Delivery
    URI normalizer preserves double slash intact
  3. Exploit
    mod_auth directory regex mismatch; no 401 challenge issued
  4. Execution
    mod_get receives un-collapsed path
  5. Persist
    OS normalizes // to / transparently
  6. Impact
    Protected 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

otp 28.0 <28.5.0.6
otp 29.0 <29.0.6
otp 9.4 <9.6.2.3
otp 17.0 <27.3.4.17
otp 84adefa331c4159d432d22840663c38f155cd4c1 <*
otp 9.7 <9.7.2
otp 5.10 <9.3.2.7

Affected Packages

euvd otp fix: 9.3.2.7, 9.6.2.3, 9.7.2, 27.3.4.17, 28.5.0.6, 29.0.6

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

Vendor (EEF) PRIMARY 8.2 HIGH
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
vuln.today AI 7.5 HIGH

Network-reachable with no credentials required per PR:N in input vector; high confidentiality only, no integrity or availability impact, scope unchanged.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 52% exploitable
Prevalence
Low
niche built-in HTTP server within Erlang ecosystem only
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Erlang

View all
CVE-2025-32433 CRITICAL POC
10.0 Apr 16

Erlang/OTP SSH server allows unauthenticated remote code execution by exploiting a flaw in SSH protocol message handling

CVE-2017-1000385 MEDIUM POC
5.9 Dec 12

The Erlang otp TLS server answers with different TLS alerts to different error types in the RSA PKCS #1 1.5 padding. Rat

CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2020-13802 CRITICAL POC
9.8 Sep 02

Rebar3 versions 3.0.0-beta.3 to 3.13.2 are vulnerable to OS command injection via URL parameter of dependency specificat

CVE-2014-1693 HIGH POC
7.5 Dec 08

Multiple CRLF injection vulnerabilities in the FTP module in Erlang/OTP R15B03 allow context-dependent attackers to inje

CVE-2021-29221 HIGH POC
7.0 Apr 09

A local privilege escalation vulnerability was discovered in Erlang/OTP prior to version 23.2.3. Rated high severity (CV

CVE-2016-10253 CRITICAL
9.8 Mar 18

An issue was discovered in Erlang/OTP 18.x. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitab

CVE-2022-37026 CRITICAL
9.8 Sep 21

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

CVE-2026-89422 CRITICAL
9.3 Sep 22

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

CVE-2026-67404 CRITICAL
9.2 Sep 23

RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b

CVE-2026-67231 CRITICAL
9.1 Sep 23

TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged

CVE-2026-55953 CRITICAL
9.1 Jul 27

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

Vendor 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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy