CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Lifecycle Timeline
5Description
Deno is a JavaScript, TypeScript, and WebAssembly runtime. Starting in version 2.2.0 and prior to versions 2.2.5, it is possible to bypass Deno's permission read/write db permission check by using `ATTACH DATABASE` statement. Version 2.2.5 contains a patch for the issue.
Analysis
Deno versions 2.2.0 through 2.2.4 contain an authorization bypass vulnerability in SQLite database handling that allows attackers to circumvent read/write database permission checks via the SQL ATTACH DATABASE statement. An unauthenticated remote attacker can exploit this with no user interaction to gain unauthorized read and write access to protected databases, achieving high confidentiality and integrity impact. Patch is available in Deno 2.2.5.
Technical Context
Deno is a secure-by-default runtime for JavaScript, TypeScript, and WebAssembly that implements a granular permission system to control access to system resources, including file system read/write operations. The vulnerability exists in Deno's SQLite integration (likely via the sql.js or similar WebAssembly SQLite binding) where the permission enforcement layer fails to validate the `ATTACH DATABASE` SQL statement. The `ATTACH DATABASE` clause in SQLite allows attaching additional database files at runtime; Deno's permission model checks are bypassed because the permission validation occurs at the initial database connection level but not during subsequent SQL statement execution. This is a classic example of CWE-863 (Incorrect Authorization) where security checks are applied inconsistently—the initial database open triggers permission validation, but the `ATTACH DATABASE` statement allows loading additional databases without re-checking permissions. Affected versions: Deno 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.2.4 (CPE: cpe:2.3:a:denoland:deno:2.2.0:*:*:*:*:*:*:* through cpe:2.3:a:denoland:deno:2.2.4:*:*:*:*:*:*:*).
Affected Products
Deno (['2.2.0', '2.2.1', '2.2.2', '2.2.3', '2.2.4'])
Priority Score
Vendor Status
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2025-16915
GHSA-8vxj-4cph-c596