Skip to main content

danger-js CVE-2026-16629

| EUVDEUVD-2026-47833 MEDIUM
OS Command Injection (CWE-78)
2026-07-22 VulDB GHSA-3x93-p86w-5jvh
4.8
CVSS 4.0 · Vendor: VulDB
Share

Severity by source

Vendor (VulDB) PRIMARY
4.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.3 MEDIUM

Local attack vector and low privileges required to influence repository filenames; unchanged scope with limited per-dimension impact confirmed by CVSS 4.0 source data.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

2
Source Code Evidence Fetched
Jul 22, 2026 - 21:46 vuln.today
Analysis Generated
Jul 22, 2026 - 21:46 vuln.today

DescriptionCVE.org

A vulnerability was identified in danger danger-js up to 13.0.7. Impacted is the function danger.git.diffForFile of the file source/platforms/git/localGetFileAtSHA.ts of the component CLI. Such manipulation of the argument File leads to os command injection. The attack needs to be performed locally. Upgrading to version 13.0.8 is recommended to address this issue. The name of the patch is 087a7290264cc6fb7154ea8c2552a7b2cb8b33a3. It is advisable to upgrade the affected component.

AnalysisAI

OS command injection in danger-js up to version 13.0.7 allows low-privileged local attackers to execute arbitrary shell commands by supplying a maliciously crafted file path to the danger.git.diffForFile function. The vulnerable code in localGetFileAtSHA.ts constructs a git command via unsafe template string interpolation and passes it to Node.js exec(), which invokes a shell - meaning any shell metacharacters embedded in a filename (e.g., x";touch /tmp/pwn;#) break out of the quoted argument and run as OS commands. Vendor-released patch 13.0.8 is available; no public exploit has been identified at time of analysis.

Technical ContextAI

danger-js (CPE: cpe:2.3:a:danger:danger-js:*:*:*:*:*:*:*:*) is a Node.js CLI tool widely used in CI/CD pipelines to automate code review feedback. The vulnerable function localGetFileAtSHA in source/platforms/git/localGetFileAtSHA.ts assembled git commands as a template literal string (git show ${sha}:"${path}") and executed them via Node.js child_process.exec(). Because exec() delegates parsing to the system shell, any shell metacharacters in the path argument - such as double quotes, semicolons, or backticks - are interpreted by the shell rather than treated as literal filename characters. CWE-78 (Improper Neutralization of Special Elements used in an OS Command) precisely describes this root cause: user-controlled input is concatenated into a shell command without escaping or allowlisting. The fix (commit 087a7290) replaces exec() with execFile() and passes the git arguments as a JavaScript array, bypassing the shell entirely so metacharacters in filenames are inert.

RemediationAI

Upgrade danger-js to version 13.0.8, which resolves this issue by replacing child_process.exec() with execFile() and passing git arguments as an array rather than a shell-interpolated string (patch commit 087a7290264cc6fb7154ea8c2552a7b2cb8b33a3, available at https://github.com/danger/danger-js/commit/087a7290264cc6fb7154ea8c2552a7b2cb8b33a3 and https://github.com/danger/danger-js/releases/tag/13.0.8). If immediate upgrade is not feasible, a compensating control is to restrict what filenames can appear in repositories processed by danger-js - for example, by enforcing a CI-level filename allowlist that rejects shell metacharacters (;, ", ` `, $, &, |`) via a pre-receive git hook; note this adds repository maintenance overhead and may block legitimate filenames in some ecosystems. Running danger-js inside an isolated container or sandboxed CI environment limits blast radius if injection occurs but does not eliminate the vulnerability.

Share

CVE-2026-16629 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy