{"id":"CVE-2026-115379","kind":"vulnerability","aliases":["CVE-2026-115379"],"related":[],"title":"Wasmtime: missing GC rooting lets crafted Wasm corrupt the GC heap","description":"Wasmtime 47.0.0 before 48.0.4 and 49.0.0 before 49.0.2 contains a missing GC rooting vulnerability that leaves references live across try_call unrooted when compiling Wasm modules. Attackers can supply Wasm modules whose callee triggers garbage collection, leaving stale or dangling references that cause GC heap corruption or incorrect execution.","summary":"Wasmtime, the WebAssembly runtime, fails to root some references across a try_call when compiling Wasm modules, so a garbage collection can leave them stale or dangling. An attacker who supplies a crafted Wasm module can cause GC heap corruption or incorrect execution.","severity":"medium","cvss":6.9,"epss":0.00277,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["plugins","runtime","rust","wasmtime","webassembly"],"not_affected_if":["other-runtime","trusted-modules-only"],"how_to_check":"- Run `wasmtime --version` (or check the wasmtime crate version in Cargo.lock) and see whether it falls in 47.0.0 to before 48.0.4, or 49.0.0 to before 49.0.2.\n- Check whether the application runs untrusted or user-supplied Wasm modules through Wasmtime.","fix":"- Upgrade Wasmtime to `48.0.4` or later on the 48.x line, or to `49.0.2` or later on the 49.x line.\n- Upgrade the Wasmtime crate or binary in each service that embeds it.","status":"open","published_at":"2026-10-22T19:17:44+00:00","first_seen_at":"2026-10-23T21:57:31+00:00","triaged_at":"2026-10-25T03:38:49+00:00","updated_at":"2026-10-25T03:38:49+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-25T03:38:49Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Wasmtime to `48.0.4` or later on the 48.x line, or to `49.0.2` or later on the 49.x line.\n- Upgrade the Wasmtime crate or binary in each service that embeds it.","reach":"unknown","title":"Wasmtime: missing GC rooting lets crafted Wasm corrupt the GC heap","impact":"medium","summary":"Wasmtime, the WebAssembly runtime, fails to root some references across a try_call when compiling Wasm modules, so a garbage collection can leave them stale or dangling. An attacker who supplies a crafted Wasm module can cause GC heap corruption or incorrect execution.","category":"runtime","nicknames":[],"who_cares":["wasmtime","webassembly","rust","plugins"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Heap corruption or incorrect code execution inside the host process","analyst_note":"Check the Wasmtime security advisory for the exact trigger conditions and whether a default configuration is needed; the sources here give only the NVD and EPSS entries.","how_to_check":"- Run `wasmtime --version` (or check the wasmtime crate version in Cargo.lock) and see whether it falls in 47.0.0 to before 48.0.4, or 49.0.0 to before 49.0.2.\n- Check whether the application runs untrusted or user-supplied Wasm modules through Wasmtime.","needs_analyst":true,"not_affected_if":["trusted-modules-only","other-runtime"],"who_is_affected":"Teams that embed Wasmtime on versions 47.0.0 through 48.0.3 or 49.0.0 through 49.0.1 and compile Wasm modules they did not write, such as plugins, user uploads or third-party modules. Teams that run only trusted, self-authored Wasm, or use other Wasm runtimes, have less exposure. Versions outside these ranges are not listed as affected.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000697,"input_tokens":3408,"output_tokens":713,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-115379':14A,17A '-2026':13A,16A '47.0.0':67C '48.0.4':69C '49.0.0':71C '49.0.2':73C 'across':32B,84C 'attack':51B,92C 'call':35B,86C 'calle':98C 'caus':59B,108C 'collect':43B,101C 'compil':37B,89C 'contain':74C 'corrupt':8A,62B,111C 'craft':6A,55B 'cve':12A,15A 'dangl':49B,105C 'execut':65B,114C 'fail':27B 'garbag':42B,100C 'gc':3A,10A,60B,77C,109C 'heap':11A,61B,110C 'incorrect':64B,113C 'leav':45B,81C,102C 'let':5A 'live':83C 'miss':2A,76C 'modul':39B,57B,91C,96C 'plugin':18B 'refer':31B,82C,106C 'root':4A,29B,78C 'runtim':19B,26B 'rust':20B 'stale':47B,103C 'suppli':53B,94C 'tri':34B,85C 'trigger':99C 'unroot':87C 'vulner':79C 'wasm':7A,38B,56B,90C,95C 'wasmtim':1A,21B,23B,66C 'webassembl':22B,25B 'whose':97C","nicknames":[],"mitigations":[],"who_affected":"Teams that embed Wasmtime on versions 47.0.0 through 48.0.3 or 49.0.0 through 49.0.1 and compile Wasm modules they did not write, such as plugins, user uploads or third-party modules. Teams that run only trusted, self-authored Wasm, or use other Wasm runtimes, have less exposure. Versions outside these ranges are not listed as affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-22T19:17:44+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/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-115379","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115379","severity":null,"published_at":"2026-10-22T19:17:44+00:00","modified_at":"2026-10-22T19:17:44+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-115379","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-115379","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"}