{"id":"CVE-2026-115386","kind":"vulnerability","aliases":["CVE-2026-115386"],"related":[],"title":"Wasmtime: directory listing leaks host memory bytes to guest programs","description":"Wasmtime before 36.0.17, 37.0.0 before 48.0.4, and 49.0.0 before 49.0.2 contains an information disclosure vulnerability in the WASIp1 fd_readdir implementation that copies uninitialized struct padding into guest memory. Guests with a preopened directory can list entries to receive three bytes of leftover host stack or heap memory per directory entry.","summary":"Wasmtime's WASIp1 fd_readdir copies uninitialized struct padding into guest memory. A guest with a preopened directory can list entries and read three bytes of leftover host stack or heap memory per entry.","severity":"low","cvss":2.6,"epss":0.0015,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["runtime","rust","self-hosted","wasmtime","webassembly"],"not_affected_if":["no-preopened-directories","trusted-guests-only","wasip2-only"],"how_to_check":"- Run `wasmtime --version` and compare against the fixed versions.\n- Check Cargo.lock or go/npm dependency manifests for the `wasmtime` crate or bindings at versions before 36.0.17, 37.0.0 to 48.0.3, or 49.0.0 to 49.0.1.","fix":"- Upgrade Wasmtime to `36.0.17`, `48.0.4`, or `49.0.2` depending on the release line in use.","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:49:26+00:00","updated_at":"2026-10-25T04:49:26+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-10-25T04:49:26Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Wasmtime to `36.0.17`, `48.0.4`, or `49.0.2` depending on the release line in use.","reach":"local","title":"Wasmtime: directory listing leaks host memory bytes to guest programs","impact":"low","summary":"Wasmtime's WASIp1 fd_readdir copies uninitialized struct padding into guest memory. A guest with a preopened directory can list entries and read three bytes of leftover host stack or heap memory per entry.","category":"runtime","nicknames":[],"who_cares":["wasmtime","webassembly","self-hosted","rust"],"confidence":0.7,"needs_auth":"unknown","worst_case":"Guest reads leftover host memory bytes from directory listings","analyst_note":"","how_to_check":"- Run `wasmtime --version` and compare against the fixed versions.\n- Check Cargo.lock or go/npm dependency manifests for the `wasmtime` crate or bindings at versions before 36.0.17, 37.0.0 to 48.0.3, or 49.0.0 to 49.0.1.","needs_analyst":false,"not_affected_if":["no-preopened-directories","trusted-guests-only","wasip2-only"],"who_is_affected":"Teams that embed Wasmtime to run untrusted WebAssembly guests that use WASIp1 and have preopened directories exposed to them. Hosts that run only trusted guests, or that do not preopen directories, have a much smaller exposure. Teams that do not embed Wasmtime can skip this.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000624,"input_tokens":3405,"output_tokens":567,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-115386':13A,16A '-2026':12A,15A '36.0.17':60C '37.0.0':61C '48.0.4':63C '49.0.0':65C '49.0.2':67C 'byte':7A,48B,98C 'contain':68C 'copi':29B,80C 'cve':11A,14A 'directori':2A,41B,91C,107C 'disclosur':71C 'entri':44B,57B,94C,108C 'fd':27B,76C 'guest':9A,34B,37B,85C,87C 'heap':54B,104C 'host':5A,21B,51B,101C 'implement':78C 'inform':70C 'leak':4A 'leftov':50B,100C 'list':3A,43B,93C 'memori':6A,35B,55B,86C,105C 'pad':32B,83C 'per':56B,106C 'preopen':40B,90C 'program':10A 'read':46B 'readdir':28B,77C 'receiv':96C 'runtim':17B 'rust':18B 'self':20B 'self-host':19B 'stack':52B,102C 'struct':31B,82C 'three':47B,97C 'uniniti':30B,81C 'vulner':72C 'wasip1':26B,75C 'wasmtim':1A,22B,24B,58C 'webassembl':23B","nicknames":[],"mitigations":[],"who_affected":"Teams that embed Wasmtime to run untrusted WebAssembly guests that use WASIp1 and have preopened directories exposed to them. Hosts that run only trusted guests, or that do not preopen directories, have a much smaller exposure. Teams that do not embed Wasmtime can skip this.","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:L/VI:N/VA:N/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-115386","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115386","severity":null,"published_at":"2026-10-22T19:17:45+00:00","modified_at":"2026-10-23T15:17:29+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-115386","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-115386","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"}