{"id":"CVE-2026-115384","kind":"vulnerability","aliases":["CVE-2026-115384"],"related":[],"title":"Wasmtime: malicious guest components overflow host stack and escape sandbox","description":"Wasmtime 39.0.0 before 48.0.4 and 49.0.0 before 49.0.2 contains a stack buffer overflow vulnerability that allows malicious guests to write ~16KB to the native stack via unvalidated async callback result types. Attackers can supply components with mistyped component-model-async callback functions to overwrite return addresses, crashing the host or escaping the sandbox.","summary":"Wasmtime versions 39.0.0 through 48.0.3 and 49.0.0 through 49.0.1 fail to validate async callback result types in the component model. A malicious guest component can write about 16KB onto the native host stack, overwriting return addresses to crash the host or escape the WebAssembly sandbox.","severity":"critical","cvss":9.9,"epss":0.00312,"exploited":false,"exploited_at":null,"products":[{"name":"wasmtime","fixed":["48.0.4","49.0.2"],"affected":">= 39.0.0, < 48.0.4; >= 49.0.0, < 49.0.2","ecosystem":"crates.io"}],"ecosystems":["crates.io"],"tags":["component-model-async","package","runtime","rust","sandbox-escape","self-hosted","wasmtime","webassembly"],"not_affected_if":["default-config","no-untrusted-components"],"how_to_check":"Run wasmtime --version and check whether it falls in 39.0.0-48.0.3 or 49.0.0-49.0.1, or check Cargo.lock for wasmtime entries in those ranges.","fix":"Upgrade to wasmtime 48.0.4 or 49.0.2 (or any later release).\nIf you cannot upgrade, do not run untrusted component-model-async guests (sources do not give a workaround).","status":"resolved","published_at":"2026-10-22T19:17:45+00:00","first_seen_at":"2026-10-23T21:57:31+00:00","triaged_at":"2026-10-23T22:32:09+00:00","updated_at":"2026-10-24T07:15:51+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T22:32:09Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade to wasmtime 48.0.4 or 49.0.2 (or any later release).\nIf you cannot upgrade, do not run untrusted component-model-async guests (sources do not give a workaround).","reach":"internet","title":"Wasmtime: malicious guest components overflow host stack and escape sandbox","impact":"high","summary":"Wasmtime versions 39.0.0 through 48.0.3 and 49.0.0 through 49.0.1 fail to validate async callback result types in the component model. A malicious guest component can write about 16KB onto the native host stack, overwriting return addresses to crash the host or escape the WebAssembly sandbox.","category":"package","who_cares":["rust","wasmtime","self-hosted","webassembly"],"confidence":0.8,"needs_auth":"no","worst_case":"Attacker code escapes the sandbox and runs on the host.","analyst_note":"Confirm the component-model-async trigger conditions and whether a workaround exists in the NVD or Bytecode Alliance advisory (not in the signal).","how_to_check":"Run wasmtime --version and check whether it falls in 39.0.0-48.0.3 or 49.0.0-49.0.1, or check Cargo.lock for wasmtime entries in those ranges.\nunknown","needs_analyst":true,"not_affected_if":["default-config","no-untrusted-components"],"user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"critical"},"cost_usd":0.000564,"input_tokens":3065,"output_tokens":515,"severity_before":"critical"},"analyst_status":"done","analyst_note":"Confirm the fixed-version ranges and whether component-model-async must be enabled, using the Wasmtime GHSA advisory linked from NVD (https://nvd.nist.gov/vuln/detail/CVE-2026-115384).","search":"'-115384':13A,16A '-2026':12A,15A '16kb':60B,98C '39.0.0':35B,79C '48.0.3':37B '48.0.4':81C '49.0.0':39B,83C '49.0.1':41B '49.0.2':85C 'address':68B,124C 'allow':93C 'async':21B,45B,105C,118C 'attack':109C 'buffer':89C 'callback':46B,106C,119C 'compon':4A,19B,51B,56B,112C,116C 'component-model-async':18B,115C 'contain':86C 'crash':70B,125C 'cve':11A,14A 'escap':9A,27B,74B,129C 'fail':42B 'function':120C 'guest':3A,55B,95C 'host':6A,30B,64B,72B,127C 'malici':2A,54B,94C 'mistyp':114C 'model':20B,52B,117C 'nativ':63B,101C 'onto':61B 'overflow':5A,90C 'overwrit':66B,122C 'packag':22B 'result':47B,107C 'return':67B,123C 'runtim':23B 'rust':24B 'sandbox':10A,26B,77B,131C 'sandbox-escap':25B 'self':29B 'self-host':28B 'stack':7A,65B,88C,102C 'suppli':111C 'type':48B,108C 'unvalid':104C 'valid':44B 'version':34B 'via':103C 'vulner':91C 'wasmtim':1A,31B,33B,78C 'wasmtime':17A 'webassembl':32B,76B 'write':58B,97C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","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:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/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-115384","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115384","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":"analyst","external_id":"CVE-2026-115384:209","url":null,"severity":null,"published_at":"2026-10-23T22:22:55+00:00","modified_at":"2026-10-23T22:22:55+00:00","first_seen_at":"2026-10-23T22:22:55+00:00","fetched_at":"2026-10-23T22:22:55+00:00","note":"Read Wasmtime GHSA-32h6-97mm-8q3c (published Oct 2, vendor CVSS 4.0 9.3; NVD 9.9 by VulnCheck) plus RustSec and 49.0.2 release notes. Affected >=39.0.0,<48.0.4 and >=49.0.0,<49.0.2. Workaround: disable component-model-async. No PoC or exploitation found; I did not search social posts. Note the 40-47 versions are inside the affected range."},{"source":"epss","external_id":"CVE-2026-115384","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-115384","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T07:15:51+00:00","fetched_at":"2026-10-25T12:38:51+00:00","note":null}],"documents":[{"id":1406,"url":"https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-32h6-97mm-8q3c","title":"GHSA-32h6-97mm-8q3c Wasmtime async-lifted callback stack overflow","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":1407,"url":"https://rustsec.org/advisories/RUSTSEC-2026-0327","title":"RUSTSEC-2026-0327","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":1408,"url":"https://sourceforge.net/projects/wasmtime.mirror/files/v49.0.2/","title":"Wasmtime 49.0.2 release notes","kind":"release","source":"analyst","text":null,"published_at":null,"relation":"fix","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}