GitHub Advisoryadvisory · crates.io

GHSA-m2gf-x3f6-8hq3 Deno is Vulnerable to Command Injection on Windows During Batch File Execution

HIGH Published 2025-10-08 Modified 2025-10-08 Official page ↗
Aliases
CVE-2025-61787
Ecosystem
crates.io
Packages
deno
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-77
Reviewed
2025-10-08

Affected packages

• crates.io deno: < 2.5.2 → fixed in 2.5.2

Description

Summary Deno versions up to 2.5.1 are vulnerable to Command Line Injection attacks on Windows when batch files are executed. Details In Windows, ``CreateProcess()`` always implicitly spawns ``cmd.exe`` if a batch file (.bat, .cmd, etc.) is being executed even if the application does not specify it via the command line. This makes Deno vulnerable to a command injection attack on Windows as demonstrated by the two proves-of-concept below. PoC Using `node:child_process` (with the `env` and `run` permissions): ```JS const { spawn } = require('node:child_process'); const child = spawn('./test.bat', ['&calc.exe']); ``` Using `Deno.Command.spawn()` (with the `run` permission): ```JS const command = new Deno.Command('./test.bat', { args: ['&calc.exe'], }); const child = command.spawn(); ``` Impact Both of these scripts result in opening calc.exe on Windows, thus allowing a Command Line Injection attack when user-provided arguments are passed if the script being executed by the child process is a batch script.

Related

Alias · CVE (1)

  • CVE-2025-61787 Deno is a JavaScript, TypeScript, and WebAssembly runtime. vulnerability

Weakness · CWE (1)

  • CWE-77 Improper Neutralization of Special Elements used in a Command weakness

References