{"id":"CVE-2026-115381","kind":"vulnerability","aliases":["CVE-2026-115381"],"related":[],"title":"Wasmtime: guest write-zeroes request exhausts host memory, causing denial of service","description":"Wasmtime before 36.0.17, 37.0.0 before 48.0.4, and 49.0.0 before 49.0.2 contains an unbounded memory allocation in the wasmtime-wasi WASIp2 write-zeroes method of SinkOutputStream, the default stream used when stdout/stderr are not configured. A malicious WebAssembly guest can request huge zero-filled writes, exhausting host memory and causing denial of service.","summary":"Wasmtime's WASIp2 write-zeroes method in SinkOutputStream allocates unbounded zero-filled buffers when stdout or stderr are not configured. A malicious WebAssembly guest can request huge writes and exhaust host memory, causing denial of service.","severity":"medium","cvss":5.9,"epss":0.00212,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["runtime","rust","self-hosted","wasi","wasmtime"],"not_affected_if":["stdout-stderr-configured","trusted-guests-only"],"how_to_check":"- Run `wasmtime --version` and compare against the fixed releases.\n- Check whether your host uses the wasmtime-wasi crate with WASIp2 and leaves stdout/stderr unconfigured.","fix":"- Upgrade wasmtime to `36.0.17` on the 36 line, `48.0.4` on the 48 line, or `49.0.2` on the 49 line.","status":"open","published_at":"2026-10-22T19:17:45+00:00","first_seen_at":"2026-10-23T21:57:31+00:00","triaged_at":"2026-10-25T04:07:57+00:00","updated_at":"2026-10-25T04:07:57+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-10-25T04:07:57Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade wasmtime to `36.0.17` on the 36 line, `48.0.4` on the 48 line, or `49.0.2` on the 49 line.","reach":"unknown","title":"Wasmtime: guest write-zeroes request exhausts host memory, causing denial of service","impact":"medium","summary":"Wasmtime's WASIp2 write-zeroes method in SinkOutputStream allocates unbounded zero-filled buffers when stdout or stderr are not configured. A malicious WebAssembly guest can request huge writes and exhaust host memory, causing denial of service.","category":"runtime","nicknames":[],"who_cares":["wasmtime","wasi","rust","self-hosted"],"confidence":0.7,"needs_auth":"no","worst_case":"guest exhausts host memory, crashing the host process","analyst_note":"","how_to_check":"- Run `wasmtime --version` and compare against the fixed releases.\n- Check whether your host uses the wasmtime-wasi crate with WASIp2 and leaves stdout/stderr unconfigured.","needs_analyst":false,"not_affected_if":["trusted-guests-only","stdout-stderr-configured"],"who_is_affected":"Applications that embed Wasmtime and run untrusted WebAssembly guests through WASIp2 with the default stdout/stderr sink. Hosts that run only trusted guests, or that configure stdout and stderr explicitly, are less exposed.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000614,"input_tokens":3427,"output_tokens":543,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-115381':16A,19A '-2026':15A,18A '36.0.17':67C '37.0.0':68C '48.0.4':70C '49.0.0':72C '49.0.2':74C 'alloc':36B,79C 'buffer':41B 'caus':10A,61B,116C 'configur':48B,100C 'contain':75C 'cve':14A,17A 'default':93C 'denial':11A,62B,117C 'exhaust':7A,58B,112C 'fill':40B,110C 'guest':2A,52B,104C 'host':8A,24B,59B,113C 'huge':55B,107C 'malici':50B,102C 'memori':9A,60B,78C,114C 'method':33B,89C 'request':6A,54B,106C 'runtim':20B 'rust':21B 'self':23B 'self-host':22B 'servic':13A,64B,119C 'sinkoutputstream':35B,91C 'stderr':45B 'stdout':43B 'stdout/stderr':97C 'stream':94C 'unbound':37B,77C 'use':95C 'wasi':25B,84C 'wasip2':29B,85C 'wasmtim':1A,26B,27B,65C,83C 'wasmtime-wasi':82C 'webassembl':51B,103C 'write':4A,31B,56B,87C,111C 'write-zero':3A,30B,86C 'zero':5A,32B,39B,88C,109C 'zero-fil':38B,108C","nicknames":[],"mitigations":[],"who_affected":"Applications that embed Wasmtime and run untrusted WebAssembly guests through WASIp2 with the default stdout/stderr sink. Hosts that run only trusted guests, or that configure stdout and stderr explicitly, are less exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-22T19:17:45+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: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-115381","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115381","severity":null,"published_at":"2026-10-22T19:17:45+00:00","modified_at":"2026-10-22T19:17:45+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-115381","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-115381","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"}