{"id":"CVE-2025-61785","state":"PUBLISHED","title":"Deno's --deny-write check does not prevent permission bypass","description":"Deno is a JavaScript, TypeScript, and WebAssembly runtime. In versions prior to 2.5.3 and 2.2.15, `Deno.FsFile.prototype.utime` and `Deno.FsFile.prototype.utimeSync` are not limited by the permission model check `--deny-write=./`. It's possible to change to change the access (`atime`) and modification (`mtime`) times on the file stream resource even when the file is opened with `read` only permission (and `write`: `false`) and file write operations are not allowed (the script is executed with `--deny-write=./`). Similar APIs like `Deno.utime` and `Deno.utimeSync` require `allow-write` permission, however, when a file is opened, even with read only flags and deny-write permission, it's still possible to change the access (`atime`) and modification (`mtime`) times, and thus bypass the permission model. Versions 2.5.3 and 2.2.15 fix the issue.","publishedAt":"2025-10-08T00:37:01.869Z","updatedAt":"2025-10-08T18:59:12.863Z","severity":{"score":3.3,"label":"Low","version":"3.0","vector":"CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["denoland deno"],"affected":[{"vendor":"denoland","product":"deno","versions":[{"version":">= 2.3.0, < 2.5.3","status":"affected"},{"version":"< 2.2.15","status":"affected"}]}],"references":["https://github.com/denoland/deno/security/advisories/GHSA-vg2r-rmgp-cgqj","https://github.com/denoland/deno/pull/30872","https://github.com/denoland/deno/commit/992e998dfe436cdc9325232759af8be92f11739b","https://github.com/denoland/deno/releases/tag/v2.2.15","https://github.com/denoland/deno/releases/tag/v2.5.3"],"weaknesses":["CWE-266"],"ingestedAt":"2026-10-29T20:09:48.677Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/61xxx/CVE-2025-61785.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2025-61785","state":"PUBLISHED","datePublished":"2025-10-08T00:37:01.869Z","dateUpdated":"2025-10-08T18:59:12.863Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2025-09-30T19:43:49.902Z"},"containers":{"cna":{"title":"Deno's --deny-write check does not prevent permission bypass","descriptions":[{"lang":"en","value":"Deno is a JavaScript, TypeScript, and WebAssembly runtime. In versions prior to 2.5.3 and 2.2.15, `Deno.FsFile.prototype.utime` and `Deno.FsFile.prototype.utimeSync` are not limited by the permission model check `--deny-write=./`. It's possible to change to change the access (`atime`) and modification (`mtime`) times on the file stream resource even when the file is opened with `read` only permission (and `write`: `false`) and file write operations are not allowed (the script is executed with `--deny-write=./`). Similar APIs like `Deno.utime` and `Deno.utimeSync` require `allow-write` permission, however, when a file is opened, even with read only flags and deny-write permission, it's still possible to change the access (`atime`) and modification (`mtime`) times, and thus bypass the permission model. Versions 2.5.3 and 2.2.15 fix the issue."}],"affected":[{"vendor":"denoland","product":"deno","versions":[{"version":">= 2.3.0, < 2.5.3","status":"affected"},{"version":"< 2.2.15","status":"affected"}]}],"references":[{"url":"https://github.com/denoland/deno/security/advisories/GHSA-vg2r-rmgp-cgqj","name":"https://github.com/denoland/deno/security/advisories/GHSA-vg2r-rmgp-cgqj","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/denoland/deno/pull/30872","name":"https://github.com/denoland/deno/pull/30872","tags":["x_refsource_MISC"]},{"url":"https://github.com/denoland/deno/commit/992e998dfe436cdc9325232759af8be92f11739b","name":"https://github.com/denoland/deno/commit/992e998dfe436cdc9325232759af8be92f11739b","tags":["x_refsource_MISC"]},{"url":"https://github.com/denoland/deno/releases/tag/v2.2.15","name":"https://github.com/denoland/deno/releases/tag/v2.2.15","tags":["x_refsource_MISC"]},{"url":"https://github.com/denoland/deno/releases/tag/v2.5.3","name":"https://github.com/denoland/deno/releases/tag/v2.5.3","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_0":{"attackComplexity":"LOW","attackVector":"LOCAL","availabilityImpact":"NONE","baseScore":3.3,"baseSeverity":"LOW","confidentialityImpact":"NONE","integrityImpact":"LOW","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","version":"3.0"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-266","lang":"en","description":"CWE-266: Incorrect Privilege Assignment","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2025-10-08T00:37:01.869Z"},"source":{"advisory":"GHSA-vg2r-rmgp-cgqj","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2025-10-08T18:59:00.429362Z","id":"CVE-2025-61785","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-10-08T18:59:12.863Z"}}]}}}