CVE-2026-39807

Client-supplied URI scheme trusted without transport verification in bandit

MEDIUM
6.3
CVSS Score
Published: May 1, 2026 at 08:34 PM UTC
Updated: October 26, 2026 at 09:10 PM UTC
1 product affected across 1 vendorBandit

Using bandit by mtrudel?

Get instant alerts when new vulnerabilities affect bandit - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM6.3
Exploit prediction
EPSS 0.5%
SSVC
PoC

Description

Reliance on Untrusted Inputs in a Security Decision vulnerability in mtrudel bandit allows unauthenticated transport-state spoofing on plaintext HTTP connections. 'Elixir.Bandit.Pipeline':determine_scheme/2 in lib/bandit/pipeline.ex returns the client-supplied URI scheme verbatim, ignoring the transport's secure? flag. HTTP/1.1 absolute-form request targets (e.g. GET https://victim/path HTTP/1.1) and the HTTP/2 :scheme pseudo-header are both attacker-controlled strings that flow through this function. Over a plaintext TCP connection, a client can declare https and Bandit will set conn.scheme = :https even though no TLS was negotiated. Downstream Plug consumers that branch on conn.scheme are silently misled: Plug.SSL's already-secure branch skips its HTTP→HTTPS redirect, cookies emitted with secure: true are sent over plaintext, audit logs record requests as having arrived over HTTPS, and CSRF/SameSite gating may make incorrect decisions. This issue affects bandit: from 1.0.0 before 1.11.0.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

All versions1.0.0ff2f829326cd5dcf7335939aef9775269d881e28
Vendor states this is fixed in 45feea20dea8af7ffd7245271107b695c040e667 (fixed)
Affected range stops below 1.11.0, so it looks safe — our inference, not a vendor statement

Remediation

No guide yet

No remediation guidance has been written for this CVE yet. What the record does show:

SSVC — Action Prioritization

SSVCPoCAutomatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

6.3MEDIUMEEF
Vector?

Quick Info

StatusDEFERRED
CWE
CWE-807

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card