{"id":"EUVD-2026-37001","enisaUuid":"de154bb2-68c4-30d4-a93f-2cef2ac0967e","description":"Wasmtime is a runtime for WebAssembly. In versions prior to 24.0.9, 36.0.10, and 44.0.2, when a filesystem preopen is given DirPerms::all() and FilePerms::READ without FilePerms::WRITE, this access control mechanism can be bypassed via the wasip2 descriptor.open-at or wasip1 path_open interfaces by opening a file with only the OpenFlags::TRUNCATE oflag. The root cause is that the clause handling OpenFlags::TRUNCATE in crates/wasi/src/filesystem.rs (Dir::open_at, lines 967–969) did not set open_mode |\u003d OpenMode::WRITE;, which is later used for the access control check against FilePerms to determine whether opening the file is permitted; the single-line fix adds that missing assignment, after which the affected calls correctly fail with error-code.not-permitted and ERRNO_PERM respectively. Only wasmtime-wasi embeddings that combine DirPerms::MUTATE with FilePerms::READ are affected by this bug. In particular, the Wasmtime project\u0027s wasmtime-cli\u0027s use of wasmtime-wasi is not affected, because it always sets FilePerms::all() for all preopens. This issue has been fixed in versions 24.0.9, 36.0.10 and44.0.2.","datePublished":"Jun 15, 2026, 7:47:40 PM","dateUpdated":"Jun 16, 2026, 12:46:04 PM","baseScore":7.5,"baseScoreVersion":"3.1","baseScoreVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","references":"https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-2r75-cxrj-cmph\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v24.0.9\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.10\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v44.0.2\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v45.0.0\n","aliases":"CVE-2026-47261\nGHSA-2r75-cxrj-cmph\n","assigner":"GitHub_M","epss":0.36,"enisaIdProduct":[{"id":"7082b1b1-8fdc-3a83-a9dd-b3ffab7aa256","product":{"name":"wasmtime","vendor":{"name":"bytecodealliance"}},"product_version":"25.0.0, \u003c 36.0.10"},{"id":"ac24dbcd-5f46-34a5-8c06-d661e17ebbbd","product":{"name":"wasmtime","vendor":{"name":"bytecodealliance"}},"product_version":"37.0.0, \u003c 44.0.2"},{"id":"accf07f3-40eb-3b16-9fe8-025c6fc3e3de","product":{"name":"wasmtime","vendor":{"name":"bytecodealliance"}},"product_version":"\u003c 24.0.9"}],"enisaIdVendor":[{"id":"c84f1100-6d7a-30f8-a547-91955c901698","vendor":{"name":"bytecodealliance"}}],"enisaIdVulnerability":[{"id":"5110c3db-4649-36ed-b786-02f20139bdcd","vulnerability":{"id":"GHSA-2r75-cxrj-cmph","description":"wasmtime-wasi: WASI path_open(TRUNCATE) bypasses `FilePerms::WRITE` host restriction","datePublished":"Jun 5, 2026, 3:47:02 PM","dateUpdated":"Jul 8, 2026, 5:35:44 PM","baseScore":0.0,"references":"https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-2r75-cxrj-cmph\nhttps://nvd.nist.gov/vuln/detail/CVE-2026-47261\nhttps://github.com/bytecodealliance/wasmtime\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v24.0.9\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.10\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v44.0.2\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v45.0.0\nhttps://rustsec.org/advisories/RUSTSEC-2026-0149.html\n","enisa_id":"EUVD-2026-37001\n","aliases":"GHSA-2r75-cxrj-cmph\nCVE-2026-47261\n","epss":0.0,"dataProcessed":"Nov 1, 2026, 2:01:03 AM","vulnerabilityProduct":[],"vulnerabilityVendor":[]}},{"id":"aa50feba-e33b-3cb5-9b63-c01285f9d00a","vulnerability":{"id":"CVE-2026-47261","description":"Wasmtime is a runtime for WebAssembly. In versions prior to 24.0.9, 36.0.10, and 44.0.2, when a filesystem preopen is given DirPerms::all() and FilePerms::READ without FilePerms::WRITE, this access control mechanism can be bypassed via the wasip2 descriptor.open-at or wasip1 path_open interfaces by opening a file with only the OpenFlags::TRUNCATE oflag. The root cause is that the clause handling OpenFlags::TRUNCATE in crates/wasi/src/filesystem.rs (Dir::open_at, lines 967–969) did not set open_mode |\u003d OpenMode::WRITE;, which is later used for the access control check against FilePerms to determine whether opening the file is permitted; the single-line fix adds that missing assignment, after which the affected calls correctly fail with error-code.not-permitted and ERRNO_PERM respectively. Only wasmtime-wasi embeddings that combine DirPerms::MUTATE with FilePerms::READ are affected by this bug. In particular, the Wasmtime project\u0027s wasmtime-cli\u0027s use of wasmtime-wasi is not affected, because it always sets FilePerms::all() for all preopens. This issue has been fixed in versions 24.0.9, 36.0.10 and44.0.2.","datePublished":"Jun 15, 2026, 7:47:40 PM","dateUpdated":"Jun 16, 2026, 12:46:04 PM","status":"PUBLISHED","baseScore":7.5,"baseScoreVersion":"3.1","baseScoreVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","references":"https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-2r75-cxrj-cmph\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v24.0.9\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v36.0.10\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v44.0.2\nhttps://github.com/bytecodealliance/wasmtime/releases/tag/v45.0.0\n","enisa_id":"EUVD-2026-37001\n","assigner":"GitHub_M","epss":0.36,"dataProcessed":"Nov 7, 2026, 7:22:17 AM","vulnerabilityProduct":[{"id":"03575103-7902-3a3c-894c-13592fb53df2","product":{"name":"wasmtime","vendor":{"name":"bytecodealliance"}},"product_version":"25.0.0, \u003c 36.0.10"},{"id":"a3dd5b37-4cbb-36f2-a93e-89893de0757c","product":{"name":"wasmtime","vendor":{"name":"bytecodealliance"}},"product_version":"37.0.0, \u003c 44.0.2"},{"id":"b61781de-9944-36c4-a14a-5c6cdb927686","product":{"name":"wasmtime","vendor":{"name":"bytecodealliance"}},"product_version":"\u003c 24.0.9"}],"vulnerabilityVendor":[{"id":"39ee8c39-b660-3b14-932b-89e3e831b6da","vendor":{"name":"bytecodealliance"}}]}}],"enisaIdAdvisory":[]}