| Title | Node.js find-cypress-specs 1.54.12 OS Command Injection |
|---|
| Description | find-cypress-specs accepts a --branch option to print specs changed against origin/<branch>.
The --branch value is interpolated directly into shell command strings and executed with shell.exec(). A branch name containing shell metacharacters can therefore execute additional commands.
Tested version:
find-cypress-specs 1.54.12
Public CLI used:
npx find-cypress-specs --branch <branch>
Relevant code:
// src/index.js
shell.exec(`git merge-base origin/${branch} HEAD`, {
silent: true,
})
// ...
const command = `git diff --name-only --diff-filter=AMR origin/${branch}`
const result = shell.exec(command, { silent: true })
The README documents --branch as a normal branch-name parameter:
npx find-cypress-specs --branch main |
|---|
| Source | ⚠️ https://github.com/bahmutov/find-cypress-specs/issues/423 |
|---|
| User | wjm2 (UID 99050) |
|---|
| Submission | 06/17/2026 08:41 (1 month ago) |
|---|
| Moderation | 07/23/2026 09:37 (1 month later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 382478 [bahmutov find-cypress-specs up to 1.54.12 Branch src/index.js shell.exec --branch os command injection] |
|---|
| Points | 20 |
|---|