Monitor vulnerabilities like this one. Sign up free to get alerted when software you use is affected.
8.1

Deno: Command Injection on Windows Through Batch File Bypass

JLSEC-2026-115
Summary

Deno's patch for preventing Windows batch file execution can be bypassed using alternate casing. This can allow attackers to inject commands on Windows systems. To fix this, update to Deno version 2.5.6 or later.

What to do
  • Update deno_jll to version 2.6.3+0.
Affected software
VendorProductAffected versionsFix available
deno_jll <= 2.6.3+0 2.6.3+0
Original title
Deno has an incomplete fix for command-injection prevention on Windows — case-insensitive extension bypass
Original description
### Summary

A prior patch aimed to block spawning Windows batch/shell files by returning an error when a spawned path’s extension matched `.bat` or `.cmd`. That check performs a case-sensitive comparison against lowercase literals and therefore can be bypassed when the extension uses alternate casing (for example `.BAT, .Bat`, etc.).

### POC

```javascript
const command = new Deno.Command('./test.BAT', {
args: ['&calc.exe'],
});
const child = command.spawn();
```

This causes `calc.exe` to be launched; see the attached screenshot for evidence.

**Patched in `CVE-2025-61787` — prevents execution of `.bat` and `.cmd` files:**
![photo_2025-10-10 02 27 23](https://github.com/user-attachments/assets/43df25e2-e2e1-48aa-8060-cb0a22637f1f)

**Bypass of the patched vulnerability:**
![photo_2025-10-10 02 27 25](https://github.com/user-attachments/assets/2be1afb4-84a1-4883-8e18-6a174fdd3615)

### Impact

The script launches calc.exe on Windows, demonstrating that passing user-controlled arguments to a spawned batch script can result in command-line injection.

### Mitigation

Users should update to Deno v2.5.6 or newer.
osv CVSS3.1 8.1
Published: 14 Apr 2026 · Updated: 14 Apr 2026 · First seen: 14 Apr 2026