Skip to main content

bandit EUVDEUVD-2026-63661

| CVE-2026-75484 MEDIUM
Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE-93)
2026-08-20 6b3ad84c-e1a6-4bf7-a703-f496b71e49db GHSA-23xx-x3px-xxpj
6.9
CVSS 4.0 · Vendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Share

Severity by source

Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db) PRIMARY
6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/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
vuln.today AI
5.8 MEDIUM

Network-reachable, unauthenticated, no complexity barrier; scope changed because impact falls on downstream application logic consuming smuggled header values, not bandit itself.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N

Primary rating from Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db).

CVSS VectorVendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/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
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Patch available
Aug 20, 2026 - 22:04 EUVD
Source Code Evidence Fetched
Aug 20, 2026 - 21:39 vuln.today
Analysis Generated
Aug 20, 2026 - 21:39 vuln.today

DescriptionCVE.org

Improper Neutralization of CRLF Sequences ('CRLF Injection') vulnerability in mtrudel bandit allows an unauthenticated remote attacker to smuggle CR, LF, or NUL characters into application-visible request headers via HTTP/2. Bandit.HTTP2.Stream.read_headers/1 validates pseudo-header placement and uniqueness, header-name casing, connection-specific headers, the te value, and content-length, but never checks field values. Because HPACK carries arbitrary octets, a HEADERS block whose field values contain \r, \n, or \0 decodes without error and the values land in conn.req_headers unchanged. The HTTP/1 path already rejects the same octets; HTTP/2 did not.

Bandit itself is not a sink for the injected bytes: its own logging uses fixed strings or inspect, and HTTP/2 response headers are HPACK-encoded and separately rejected by Plug's put_resp_header, so response splitting is not reachable through this path. The risk is entirely in how a downstream application consumes header values, such as appending one verbatim to a plain-text log or concatenating it into an upstream request. A related gap bundled in the same fix: only :method, :scheme, and :path were checked for at most one occurrence; a duplicate :authority pseudo-header was accepted, with the first instance silently winning as conn.host while a conflicting value remained visible to the application.

This issue affects bandit: from 1.4.0 before 1.12.5.

AnalysisAI

CRLF injection in the bandit Elixir HTTP server (versions 1.4.0 through 1.12.4) allows unauthenticated remote attackers to smuggle carriage-return, line-feed, or NUL characters into application-visible HTTP/2 request headers. Because HPACK carries arbitrary octets and bandit's HTTP/2 stream handler never validated field values for these control characters - unlike the HTTP/1 path which rejected them - a crafted HEADERS frame decodes cleanly and the malicious values reach downstream application logic unchanged. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Send HTTP/2 HEADERS frame with \r/\n/\0 in field values
Delivery
HPACK decodes frame without validation error
Exploit
Injected control chars land in conn.req_headers unchanged
Execution
Application code consumes raw header value verbatim
Impact
Log injection or HTTP/1.1 request smuggling achieved downstream

Vulnerability AssessmentAI

Exploitation The vulnerability requires the target server to be running bandit version 1.4.0 through 1.12.4 with HTTP/2 enabled (the HTTP/1 code path already rejected the same characters). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N) scores 6.9 and accurately reflects the attack surface: fully network-reachable, no authentication or complexity barrier, but with impact limited to low integrity on the vulnerable system. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker sends an HTTP/2 HEADERS frame to a bandit server where one field value - for example, x-forwarded-for - contains an embedded LF followed by a fabricated header line such as x-injected: malicious. Because bandit does not validate field values in its HTTP/2 path, HPACK decodes the frame without error and the raw value (including the embedded LF) is placed into conn.req_headers. …
Remediation Upgrade bandit to version 1.12.5 or later, which contains the fix introduced in commit d38cf046c9a3cae4d0f88001c2ceb4143f86366b. … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

EUVD-2026-63661 vulnerability details – vuln.today

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