{"id":"CVE-2026-121439","kind":"vulnerability","aliases":["CVE-2026-121439"],"related":[],"title":"Wasmtime: guests can forge content-length headers, enabling HTTP response splitting","description":"Wasmtime 46.0.0 before 48.0.7 and 49.0.0 before 49.0.4 contains a response splitting vulnerability in wasi-http p3 that allows guests to set unvalidated content-length headers. Malicious wasip3 guests can splice an existing body into a new response with an incorrect content-length to perform response splitting or injection attacks.","summary":"Wasmtime, the WebAssembly runtime, accepts unvalidated content-length headers from wasip3 guest programs in its wasi-http implementation. A malicious guest can splice an existing body into a new response, enabling response splitting or injection.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["runtime","wasi-http","wasip3","wasmtime","webassembly"],"not_affected_if":["no-wasi-http-p3","trusted-guests-only"],"how_to_check":"- Check the Wasmtime version with `wasmtime --version` or the wasmtime crate version in Cargo.lock\n- Look for wasi-http p3 use in your guest components","fix":"- Wasmtime `46.x` before `48.0.7`: move to `48.0.7` or later\n- Wasmtime `49.x` before `49.0.4`: move to `49.0.4` or later","status":"open","published_at":"2026-11-03T15:17:35+00:00","first_seen_at":"2026-11-03T15:22:00+00:00","triaged_at":"2026-11-03T15:23:10+00:00","updated_at":"2026-11-03T15:23:10+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-11-03T15:23:10Z","model":"claude-haiku-5-5","output":{"fix":"- Wasmtime `46.x` before `48.0.7`: move to `48.0.7` or later\n- Wasmtime `49.x` before `49.0.4`: move to `49.0.4` or later","reach":"network","title":"Wasmtime: guests can forge content-length headers, enabling HTTP response splitting","impact":"medium","summary":"Wasmtime, the WebAssembly runtime, accepts unvalidated content-length headers from wasip3 guest programs in its wasi-http implementation. A malicious guest can splice an existing body into a new response, enabling response splitting or injection.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["wasmtime","webassembly","wasi-http","wasip3"],"confidence":0.7,"fix_status":"available","needs_auth":"unknown","worst_case":"Attacker splices response bodies, injecting content into responses to users","analyst_note":"","how_to_check":"- Check the Wasmtime version with `wasmtime --version` or the wasmtime crate version in Cargo.lock\n- Look for wasi-http p3 use in your guest components\n- unknown","plain_action":"","needs_analyst":false,"not_affected_if":["no-wasi-http-p3","trusted-guests-only"],"who_is_affected":"Only deployments running Wasmtime 46.0.0 to 48.0.6 or 49.0.0 to 49.0.3 that execute wasip3 guests using the wasi-http interface are exposed. Hosts that run only trusted guests, or that do not use wasi-http p3, have a much smaller exposure.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000715,"input_tokens":4206,"output_tokens":589,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-121439':15A,18A '-2026':14A,17A '46.0.0':64C '48.0.7':66C '49.0.0':68C '49.0.4':70C 'accept':30B 'allow':82C 'attack':115C 'bodi':53B,98C 'contain':71C 'content':6A,33B,88C,107C 'content-length':5A,32B,87C,106C 'cve':13A,16A 'enabl':9A,58B 'exist':52B,97C 'forg':4A 'guest':2A,38B,48B,83C,93C 'header':8A,35B,90C 'http':10A,22B,44B,79C 'implement':45B 'incorrect':105C 'inject':62B,114C 'length':7A,34B,89C,108C 'malici':47B,91C 'new':56B,101C 'p3':80C 'perform':110C 'program':39B 'respons':11A,57B,59B,73C,102C,111C 'runtim':19B,29B 'set':85C 'splice':50B,95C 'split':12A,60B,74C,112C 'unvalid':31B,86C 'vulner':75C 'wasi':21B,43B,78C 'wasi-http':20B,42B,77C 'wasip3':23B,37B,92C 'wasmtim':1A,24B,26B,63C 'webassembl':25B,28B","nicknames":[],"mitigations":[],"who_affected":"Only deployments running Wasmtime 46.0.0 to 48.0.6 or 49.0.0 to 49.0.3 that execute wasip3 guests using the wasi-http interface are exposed. Hosts that run only trusted guests, or that do not use wasi-http p3, have a much smaller exposure.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","runtime","wasihttp","wasip3","wasmtime","webassembly"],"first_public_at":"2026-10-19T19:20:41+00:00","kev":null,"cvss_vector":"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","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-121439","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121439","severity":null,"published_at":"2026-11-03T15:17:35+00:00","modified_at":"2026-11-03T15:17:35+00:00","first_seen_at":"2026-11-03T15:22:00+00:00","fetched_at":"2026-11-03T15:22:00+00:00","note":null}],"documents":[{"id":58405,"url":"https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-9prg-84vf-g5fc","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-19T19:20:41+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58406,"url":"https://www.vulncheck.com/advisories/wasmtime-46.0.0-before-48.0.7-and-49.0.0-before-49.0.4-http-response-splitting-via-wasi-http","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}