jsii-diff: Command Injection via npm: package argumentGHSA-wcx4-wpfv-mc5c
HIGHGHSA-wcx4-wpfv-mc5c is a high-severity (CVSS 7.8) OS Command Injection vulnerability in jsii-diff. A fix is available for jsii-diff — see the affected versions and patch details below.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
GHSA-wcx4-wpfv-mc5c by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.
Where this sits among everything scored
Of 388,997 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.
Real-World Exposure
How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.
jsii-diffnpmDescription
Summary
jsii-diff is a command line tool to compare the API differences between two jsii assemblies, and report errors if there are backwards-incompatible changes to the API. An issue exists where specially formatted command line arguments can be used to execute shell commands via this tool.
Impact
jsii-diff supports downloading packages to compare directly from NPM, so that you can compare a proposed candidate version of your jsii package with an already-published version, by passing an argument that looks like npm:<package-specifier>. For example:
jsii-diff npm:my-package@latest .
By injecting a ; into the package-specifier part of that command, jsii-diff can be tricked into running shell commands. For example:
jsii-diff "npm:lodash; touch /tmp/123" .
This allows anyone that can control the command-line arguments to jsii-diff to run arbitrary commands with the same permissions as the jsii-diff command itself.
Patches
This issue has been addressed in jsii-diff version 1.131.0. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.
Workarounds
If you are unable to update, make sure only trusted actors can control the arguments passed to jsii-diff.
References
If you have any questions or comments about this advisory, AWS asks that you contact AWS Security via the vulnerability reporting page or directly via email to [email protected]. Please do not create a public GitHub issue.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | jsii-diff | all versions | 1.131.0npm install jsii-diff@1.131.0 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for jsii-diff, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update jsii-diff to 1.131.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-wcx4-wpfv-mc5c is resolved across your whole dependency graph.
Workarounds
Stop passing untrusted input into the interpreter or shell: call the affected binary with an argument array rather than a composed command string, reject anything outside a strict allowlist of expected values, and run the component under an account that cannot reach beyond the work it legitimately does.
Frequently Asked Questions
Is GHSA-wcx4-wpfv-mc5c in your dependencies?
Find it across npm, including transitive dependencies.