{"id":"CVE-2026-115391","kind":"vulnerability","aliases":["CVE-2026-115391"],"related":[],"title":"Wasmtime: unbounded WASIp3 write buffering lets a guest exhaust host memory","description":"Wasmtime 46.0.0 before 46.0.3 and 47.0.0 before 47.0.4 contains an uncontrolled resource allocation vulnerability in its WASIp3 implementation that buffers guest-specified-length writes on the host without limit. Malicious guests can offer large buffers to WASIp3 file or HTTP write streams, causing the host to copy and buffer all bytes, bounded only by guest linear memory, exhausting host memory.","summary":"Wasmtime's WASIp3 implementation copies and buffers every byte of guest-specified-length writes on the host with no limit. A malicious guest module can offer large buffers to file or HTTP write streams and exhaust the host's memory.","severity":"medium","cvss":6.9,"epss":0.00172,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["runtime","self-hosted","wasm","wasmtime","webassembly"],"not_affected_if":["patched-version","pre-wasip3-usage","trusted-guests-only"],"how_to_check":"- Run `wasmtime --version` and compare against `46.0.3` and `47.0.4`\n- Check Cargo.lock or go.mod for the `wasmtime` crate or library version in projects that embed it","fix":"- Upgrade Wasmtime to `46.0.3` (46.x line) or `47.0.4` (47.x line)","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:41+00:00","updated_at":"2026-10-25T03:38:41+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-10-25T03:38:41Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Wasmtime to `46.0.3` (46.x line) or `47.0.4` (47.x line)","reach":"unknown","title":"Wasmtime: unbounded WASIp3 write buffering lets a guest exhaust host memory","impact":"medium","summary":"Wasmtime's WASIp3 implementation copies and buffers every byte of guest-specified-length writes on the host with no limit. A malicious guest module can offer large buffers to file or HTTP write streams and exhaust the host's memory.","category":"runtime","nicknames":[],"who_cares":["wasmtime","wasm","webassembly","self-hosted"],"confidence":0.7,"needs_auth":"no","worst_case":"Guest module exhausts host memory, crashing the host process","analyst_note":"","how_to_check":"- Run `wasmtime --version` and compare against `46.0.3` and `47.0.4`\n- Check Cargo.lock or go.mod for the `wasmtime` crate or library version in projects that embed it","needs_analyst":false,"not_affected_if":["trusted-guests-only","pre-wasip3-usage","patched-version"],"who_is_affected":"Only hosts that run untrusted WebAssembly guests through Wasmtime's WASIp3 interface, with file or HTTP write streams, are exposed. Teams running only their own trusted guest code, or versions outside 46.0.0-46.0.2 and 47.0.0-47.0.3, can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000617,"input_tokens":3431,"output_tokens":547,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-115391':14A,17A '-2026':13A,16A '46.0.0':67C '46.0.3':69C '47.0.0':71C '47.0.4':73C 'alloc':78C 'bound':118C 'buffer':5A,31B,53B,85C,101C,115C 'byte':33B,117C 'caus':109C 'contain':74C 'copi':29B,113C 'cve':12A,15A 'everi':32B 'exhaust':9A,61B,124C 'file':55B,104C 'guest':8A,36B,48B,87C,97C,121C 'guest-specified-length':35B,86C 'host':10A,21B,42B,63B,93C,111C,125C 'http':57B,106C 'implement':28B,83C 'larg':52B,100C 'length':38B,89C 'let':6A 'limit':45B,95C 'linear':122C 'malici':47B,96C 'memori':11A,65B,123C,126C 'modul':49B 'offer':51B,99C 'resourc':77C 'runtim':18B 'self':20B 'self-host':19B 'specifi':37B,88C 'stream':59B,108C 'unbound':2A 'uncontrol':76C 'vulner':79C 'wasip3':3A,27B,82C,103C 'wasm':22B 'wasmtim':1A,23B,25B,66C 'webassembl':24B 'without':94C 'write':4A,39B,58B,90C,107C","nicknames":[],"mitigations":[],"who_affected":"Only hosts that run untrusted WebAssembly guests through Wasmtime's WASIp3 interface, with file or HTTP write streams, are exposed. Teams running only their own trusted guest code, or versions outside 46.0.0-46.0.2 and 47.0.0-47.0.3, can skip it.","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:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/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-115391","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115391","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-115391","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-115391","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"}