{"id":"CVE-2026-115388","kind":"vulnerability","aliases":["CVE-2026-115388"],"related":[],"title":"Wasmtime: oversized HTTP body writes exhaust host memory from a guest","description":"wasmtime-wasi-http in Wasmtime before 36.0.16, 37.0.0 before 48.0.3, and 49.0.0 before 49.0.1 does not enforce the wasi:io/streams check-write allowance for WASIp2 outgoing HTTP bodies, so oversized writes succeed instead of trapping. A malicious guest can pass large buffers to write on outgoing-body resources, holding host allocations for the store's lifetime and exhausting host memory.","summary":"Wasmtime's wasi-http implementation does not enforce the check-write limit for outgoing HTTP bodies under WASIp2, so oversized writes succeed instead of trapping. A malicious guest module can use this to hold host memory for the lifetime of its store and exhaust the host's memory.","severity":"medium","cvss":6.9,"epss":0.00112,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["runtime","self-hosted","wasi","wasmtime","webassembly"],"not_affected_if":["no-wasi-http","trusted-guests-only"],"how_to_check":"- Run `wasmtime --version` and compare against the affected ranges: before `36.0.16`, `37.0.0` through before `48.0.3`, and `49.0.0` through before `49.0.1`.\n- Check whether your Cargo.lock pins `wasmtime-wasi-http` in those ranges.","fix":"- Upgrade Wasmtime to `36.0.16`, `48.0.3`, or `49.0.1`, matching your release line.\n- Rebuild and redeploy any host that embeds wasmtime-wasi-http.","status":"open","published_at":"2026-10-22T19:17:46+00:00","first_seen_at":"2026-10-23T21:57:31+00:00","triaged_at":"2026-10-25T03:38:45+00:00","updated_at":"2026-10-25T03:38:45+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-10-25T03:38:45Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Wasmtime to `36.0.16`, `48.0.3`, or `49.0.1`, matching your release line.\n- Rebuild and redeploy any host that embeds wasmtime-wasi-http.","reach":"unknown","title":"Wasmtime: oversized HTTP body writes exhaust host memory from a guest","impact":"medium","summary":"Wasmtime's wasi-http implementation does not enforce the check-write limit for outgoing HTTP bodies under WASIp2, so oversized writes succeed instead of trapping. A malicious guest module can use this to hold host memory for the lifetime of its store and exhaust the host's memory.","category":"runtime","nicknames":[],"who_cares":["wasmtime","wasi","webassembly","self-hosted"],"confidence":0.7,"needs_auth":"unknown","worst_case":"A malicious guest exhausts host memory, causing denial of service.","analyst_note":"","how_to_check":"- Run `wasmtime --version` and compare against the affected ranges: before `36.0.16`, `37.0.0` through before `48.0.3`, and `49.0.0` through before `49.0.1`.\n- Check whether your Cargo.lock pins `wasmtime-wasi-http` in those ranges.","needs_analyst":false,"not_affected_if":["trusted-guests-only","no-wasi-http"],"who_is_affected":"Only hosts that run untrusted or third-party WebAssembly guests with the WASIp2 outgoing HTTP interface are exposed, because the guest must be able to write to outgoing-body resources. Teams running only their own trusted guest modules, or not using wasi-http at all, can deprioritize this.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000656,"input_tokens":3444,"output_tokens":623,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-115388':14A,17A '-2026':13A,16A '36.0.16':82C '37.0.0':83C '48.0.3':85C '49.0.0':87C '49.0.1':89C 'alloc':128C 'allow':99C 'bodi':4A,42B,104C,124C 'buffer':118C 'check':36B,97C 'check-writ':35B,96C 'cve':12A,15A 'enforc':33B,92C 'exhaust':6A,70B,135C 'guest':11A,54B,114C 'hold':60B,126C 'host':7A,21B,61B,72B,127C,136C 'http':3A,29B,41B,78C,103C 'implement':30B 'instead':49B,109C 'io/streams':95C 'larg':117C 'lifetim':65B,133C 'limit':38B 'malici':53B,113C 'memori':8A,62B,74B,137C 'modul':55B 'outgo':40B,102C,123C 'outgoing-bodi':122C 'overs':2A,46B,106C 'pass':116C 'resourc':125C 'runtim':18B 'self':20B 'self-host':19B 'store':68B,131C 'succeed':48B,108C 'trap':51B,111C 'use':57B 'wasi':22B,28B,77C,94C 'wasi-http':27B 'wasip2':44B,101C 'wasmtim':1A,23B,25B,76C,80C 'wasmtime-wasi-http':75C 'webassembl':24B 'write':5A,37B,47B,98C,107C,120C","nicknames":[],"mitigations":[],"who_affected":"Only hosts that run untrusted or third-party WebAssembly guests with the WASIp2 outgoing HTTP interface are exposed, because the guest must be able to write to outgoing-body resources. Teams running only their own trusted guest modules, or not using wasi-http at all, can deprioritize this.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-22T19:17:46+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/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-115388","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115388","severity":null,"published_at":"2026-10-22T19:17:46+00:00","modified_at":"2026-10-22T19:17:46+00:00","first_seen_at":"2026-10-23T21:57:31+00:00","fetched_at":"2026-10-23T22:29:02+00:00","note":null},{"source":"epss","external_id":"CVE-2026-115388","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-115388","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T07:15:51+00:00","fetched_at":"2026-10-24T07:15:51+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"}