CVE-2026-39805: CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') in mtrudel bandit
Inconsistent Interpretation of HTTP Requests vulnerability in mtrudel bandit allows HTTP request smuggling via duplicate Content-Length headers. 'Elixir.Bandit.Headers':get_content_length/1 in lib/bandit/headers.ex uses List.keyfind/3, which returns only the first matching header. When a request contains two Content-Length headers with different values, Bandit silently accepts it, uses the first value to read the body, and dispatches the remaining bytes as a second pipelined request on the same keep-alive connection. RFC 9112 §6.3 requires recipients to treat this as an unrecoverable framing error. When Bandit sits behind a proxy that picks the last Content-Length value and forwards the request rather than rejecting it, an unauthenticated attacker can smuggle requests past edge WAF rules, path-based ACLs, rate limiting, and audit logging. This issue affects bandit: before 1.11.0.
AI Analysis
Technical Summary
The vulnerability arises from the function 'Elixir.Bandit.Headers':get_content_length/1 in lib/bandit/headers.ex, which uses List.keyfind/3 and returns only the first Content-Length header value. If an HTTP request contains two Content-Length headers with different values, Bandit uses the first to read the body and treats the remaining bytes as a second request on the same keep-alive connection. This inconsistent interpretation enables HTTP request smuggling attacks, especially when Bandit is behind a proxy that selects the last Content-Length header and forwards the request. This can allow unauthenticated attackers to bypass edge WAF rules, path-based ACLs, rate limiting, and audit logging. The issue affects bandit versions before 1.11.0, including version 0.1.0 as explicitly stated.
Potential Impact
An unauthenticated attacker can exploit this vulnerability to smuggle HTTP requests past security controls such as web application firewalls, access control lists, rate limiting, and audit logging. This can lead to unauthorized access, evasion of security policies, and potential further exploitation depending on the backend application behavior. The vulnerability does not require privileges or user interaction and has low vector complexity, but the overall impact is limited by the need for a proxy that handles Content-Length headers differently.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. No official fix or patch is currently documented. Until a patch is available, users should consider deploying additional proxy or WAF configurations that reject requests with multiple conflicting Content-Length headers or enforce strict HTTP request parsing according to RFC 9112 §6.3. Monitoring for anomalous HTTP request patterns involving duplicate Content-Length headers may help detect exploitation attempts.
CVE-2026-39805: CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') in mtrudel bandit
Description
Inconsistent Interpretation of HTTP Requests vulnerability in mtrudel bandit allows HTTP request smuggling via duplicate Content-Length headers. 'Elixir.Bandit.Headers':get_content_length/1 in lib/bandit/headers.ex uses List.keyfind/3, which returns only the first matching header. When a request contains two Content-Length headers with different values, Bandit silently accepts it, uses the first value to read the body, and dispatches the remaining bytes as a second pipelined request on the same keep-alive connection. RFC 9112 §6.3 requires recipients to treat this as an unrecoverable framing error. When Bandit sits behind a proxy that picks the last Content-Length value and forwards the request rather than rejecting it, an unauthenticated attacker can smuggle requests past edge WAF rules, path-based ACLs, rate limiting, and audit logging. This issue affects bandit: before 1.11.0.
CVSS v4.0
Score 6.3medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability arises from the function 'Elixir.Bandit.Headers':get_content_length/1 in lib/bandit/headers.ex, which uses List.keyfind/3 and returns only the first Content-Length header value. If an HTTP request contains two Content-Length headers with different values, Bandit uses the first to read the body and treats the remaining bytes as a second request on the same keep-alive connection. This inconsistent interpretation enables HTTP request smuggling attacks, especially when Bandit is behind a proxy that selects the last Content-Length header and forwards the request. This can allow unauthenticated attackers to bypass edge WAF rules, path-based ACLs, rate limiting, and audit logging. The issue affects bandit versions before 1.11.0, including version 0.1.0 as explicitly stated.
Potential Impact
An unauthenticated attacker can exploit this vulnerability to smuggle HTTP requests past security controls such as web application firewalls, access control lists, rate limiting, and audit logging. This can lead to unauthorized access, evasion of security policies, and potential further exploitation depending on the backend application behavior. The vulnerability does not require privileges or user interaction and has low vector complexity, but the overall impact is limited by the need for a proxy that handles Content-Length headers differently.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. No official fix or patch is currently documented. Until a patch is available, users should consider deploying additional proxy or WAF configurations that reject requests with multiple conflicting Content-Length headers or enforce strict HTTP request parsing according to RFC 9112 §6.3. Monitoring for anomalous HTTP request patterns involving duplicate Content-Length headers may help detect exploitation attempts.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-04-07T12:28:54.916Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 69f5124bcbff5d86105840de
Added to database: 05/01/2026, 20:51:23 UTC
Last enriched: 07/24/2026, 21:34:50 UTC
Last updated: 07/31/2026, 19:22:58 UTC
Views: 206
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.