296,676
Total vulnerabilities in the database
Deno versions up to 2.5.1 are vulnerable to Command Line Injection attacks on Windows when batch files are executed.
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.
Using node:child_process
(with the env
and run
permissions):
const { spawn } = require('node:child_process');
const child = spawn('./test.bat', ['&calc.exe']);
Using Deno.Command.spawn()
(with the run
permission):
const command = new Deno.Command('./test.bat', {
args: ['&calc.exe'],
});
const child = command.spawn();
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.
Software | From | Fixed in |
---|---|---|
![]() |
- | 2.5.2 |