{"id":"CVE-2026-114216","kind":"vulnerability","aliases":["CVE-2026-114216"],"related":[],"title":"Bandit: chunk extension parsing lets attackers smuggle requests past proxies","description":"Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') vulnerability in the HTTP/1.1 chunked body reader of mtrudel bandit allows an unauthenticated remote attacker to smuggle a second request past a front-end proxy via a chunk extension that contains a bare LF.\n\nThe chunked reader in lib/bandit/http1/socket.ex takes the chunk-size line to be everything up to the first CRLF and discards everything after ; without checking it against the RFC 9112 chunk-ext grammar, so bare LF, bare CR and other control bytes pass. A proxy that ends the size line at a bare LF reads 2;\\nxx\\r\\n40\\r\\n... as one request whose second chunk holds a GET /admin, while Bandit ends the body early and dispatches GET /admin as a separate pipelined request. Deployments without such a proxy in front of Bandit are not affected.\n\nThis issue affects bandit: from 1.12.4 before 1.14.0.","summary":"Bandit, an Elixir HTTP server, accepts bare line feeds inside HTTP/1.1 chunked-encoding size lines and ignores the rest of the line. A front-end proxy that splits the line at a bare LF reads a different request boundary, so an unauthenticated attacker can smuggle a second request such as GET /admin past it.","severity":"medium","cvss":6.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["bandit","elixir","package","phoenix","self-hosted"],"not_affected_if":["bandit-1.14.0-or-later","no-front-end-proxy"],"how_to_check":"- Run `mix deps | grep bandit` or check `mix.lock` for the `bandit` version\n- Confirm whether a reverse proxy or load balancer sits in front of Bandit, since the sources say deployments without one are not affected","fix":"- Upgrade `bandit` to `1.14.0` or later, per the sources the affected range is from `1.12.4` before `1.14.0`","status":"open","published_at":"2026-10-26T14:16:29+00:00","first_seen_at":"2026-10-26T14:30:36+00:00","triaged_at":"2026-10-26T14:32:38+00:00","updated_at":"2026-10-26T14:32:38+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-26T14:32:38Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade `bandit` to `1.14.0` or later, per the sources the affected range is from `1.12.4` before `1.14.0`","reach":"internet","title":"Bandit: chunk extension parsing lets attackers smuggle requests past proxies","impact":"medium","summary":"Bandit, an Elixir HTTP server, accepts bare line feeds inside HTTP/1.1 chunked-encoding size lines and ignores the rest of the line. A front-end proxy that splits the line at a bare LF reads a different request boundary, so an unauthenticated attacker can smuggle a second request such as GET /admin past it.","category":"package","nicknames":[],"who_cares":["elixir","bandit","phoenix","self-hosted"],"confidence":0.7,"needs_auth":"no","worst_case":"Attacker smuggles requests past proxy to reach restricted endpoints","analyst_note":"","how_to_check":"- Run `mix deps | grep bandit` or check `mix.lock` for the `bandit` version\n- Confirm whether a reverse proxy or load balancer sits in front of Bandit, since the sources say deployments without one are not affected","needs_analyst":false,"not_affected_if":["no-front-end-proxy","bandit-1.14.0-or-later"],"who_is_affected":"Applications running Bandit from 1.12.4 before 1.14.0 behind a front-end proxy that ends chunk-size lines at a bare LF can be exposed to request smuggling. Bandit deployed without such a proxy in front of it is not affected according to the sources.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000646,"input_tokens":3570,"output_tokens":577,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-114216':13A,16A '-2026':12A,15A '/admin':77B,193C,203C '1.12.4':226C '1.14.0':228C '2':178C '9112':151C 'accept':29B 'affect':220C,223C 'allow':97C 'attack':6A,68B,101C 'bandit':1A,17B,24B,96C,195C,217C,224C 'bare':30B,58B,120C,157C,159C,175C 'bodi':92C,198C 'boundari':64B 'byte':164C 'check':146C 'chunk':2A,36B,91C,115C,123C,130C,153C,189C 'chunk-ext':152C 'chunk-siz':129C 'chunked-encod':35B 'contain':118C 'control':163C 'cr':160C 'crlf':140C 'cve':11A,14A 'deploy':209C 'differ':62B 'discard':142C 'dispatch':201C 'earli':199C 'elixir':18B,26B 'encod':37B 'end':50B,111C,169C,196C 'everyth':135C,143C 'ext':154C 'extens':3A,116C 'feed':32B 'first':139C 'front':49B,110C,215C 'front-end':48B,109C 'get':76B,192C,202C 'grammar':155C 'hold':190C 'host':23B 'http':27B,82C,84C 'http/1.1':34B,90C 'ignor':41B 'inconsist':79C 'insid':33B 'interpret':80C 'issu':222C 'let':5A 'lf':59B,121C,158C,176C 'lib/bandit/http1/socket.ex':126C 'line':31B,39B,46B,55B,132C,172C 'mtrudel':95C 'n':183C 'n40':181C 'nxx':179C 'one':185C 'packag':19B 'pars':4A 'pass':165C 'past':9A,78B,107C 'phoenix':20B 'pipelin':207C 'proxi':10A,51B,112C,167C,213C 'r':180C,182C 'read':60B,177C 'reader':93C,124C 'remot':100C 'request':8A,63B,73B,83C,106C,186C,208C 'request/response':85C 'rest':43B 'rfc':150C 'second':72B,105C,188C 'self':22B 'self-host':21B 'separ':206C 'server':28B 'size':38B,131C,171C 'smuggl':7A,70B,86C,103C 'split':53B 'take':127C 'unauthent':67B,99C 'via':113C 'vulner':87C 'whose':187C 'without':145C,210C","nicknames":[],"mitigations":[],"who_affected":"Applications running Bandit from 1.12.4 before 1.14.0 behind a front-end proxy that ends chunk-size lines at a bare LF can be exposed to request smuggling. Bandit deployed without such a proxy in front of it is not affected according to the sources.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-26T14:16:29+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/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","cvss_by":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-114216","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114216","severity":null,"published_at":"2026-10-26T14:16:29+00:00","modified_at":"2026-10-26T14:16:29+00:00","first_seen_at":"2026-10-26T14:30:36+00:00","fetched_at":"2026-10-26T14:30:36+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}