Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit malicious PR editing Nx docker config
-
DeliveryInject shell syntax into repositoryName/registryUrl
-
ExploitMaintainer or CI runs nx release version/publish
-
Execution/bin/sh -c executes injected commands
-
ImpactExfiltrate registry credentials and cloud tokens
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the @nx/docker plugin to be configured with a release pipeline, and the attacker must get malicious values into |
| Impact | This is a genuine but conditional CI/CD supply-chain risk rather than a drive-by remote exploit. The CWE-78 command injection is real and clearly demonstrated by the vendor's own regression test (a '1.0.0; touch injected.txt' payload breaking out of the |
| Exploit ScenarioDerived | An attacker opens a pull request (or otherwise alters workspace configuration) that sets |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 02, 2026
Command injection in the Nx @nx/docker release pipeline (nx 21.4.0 through 22.7.7 and 23.0.0 through 23.1.0) lets an attacker who can influence release.docker.repositoryName or registryUrl in repository configuration execute arbitrary shell commands with the privileges of the release job. Because the plugin builds docker tag, image-lookup, and docker push calls as shell strings passed to /bin/sh -c, a malicious pull request or config change that reaches a nx release version or nx release publish run can exfiltrate registry credentials and cloud tokens; dry-run publishing does NOT prevent the vulnerable image-lookup pre-check from firing. This is a genuine but conditional CI/CD supply-chain risk rather than a drive-by remote exploit, and no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade Nx to 22.7.8 (22.x line) or 23.1.1 (23.x line) or later, which converts the Docker tag, image-lookup, and push invocations to argv-array execution (execFile/execFileSync) so shell metacharacters can no longer break out; see advisory GHSA-6vc5-vf29-ffr2 and PR 36505. If immediate upgrade is not possible, remove or disable the @nx/docker release pipeline (drop the Docker plugin from nx release configuration and skip nx release version/nx release publish for Docker-targeted projects) until patched, since the vulnerable code path only executes during those commands - the trade-off is that Docker image versioning and publishing must be done manually or via a separate, isolated script. Additionally, treat release.docker.repositoryName and registryUrl as untrusted input: require code-owner review and branch protection for changes to those values, deny arbitrary config edits from fork pull requests, and avoid merging attacker-influenced nx configuration before a release run. Do not rely on --dry-run as a mitigation: the image-existence pre-check still executes the injected command. Finally, run release jobs with least-privilege, short-lived registry and cloud credentials scoped to a single repository and rotate any tokens that may have been exposed during an affected release, accepting that this limits rather than eliminates exfiltration impact.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is CWE-78 (OS command injection) caused by unsafe shell-string construction in the Nx @nx/docker plugin. Three code paths in the release pipeline - updateProjectVersion in packages/docker/src/release/version-utils.ts and the image-existence check plus docker push in packages/docker/src/executors/release-publish/release-publish.impl.ts - used execSync/exec with template-literal commands, so the image reference (assembled from workspace config, CLI flags, environment variables, and the .docker-version file) was interpolated directly into a string handed to the shell. Any shell metacharacter in release.docker.repositoryName, registryUrl, or a derived version therefore terminated the intended command (for example docker tag) and ran attacker-supplied commands. The upstream fix in PR 36505 replaces the shell-string APIs with argv-array variants (execFile, execFileSync), so arguments are passed to docker without shell interpretation; the accompanying e2e test should not run shell metacharacters in a docker version injects 1.0.0; touch injected.txt and asserts the file is not created. The affected package is identified by CPE cpe:2.3:a:nrwl:nx:*:*:*:*:*:*:*:*, with exposure limited to installations that actually use the @nx/docker release pipeline.
Know when Nx gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Malicious input is config/local (AV:L) and needs no attacker privileges to submit a PR (PR:N), but a trusted maintainer/CI must run the release (UI:R), yielding full code execution (C/I/A:H).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Nx is a monorepo solution for TypeScript and polyglot codebases. From 21.4.0 until 22.7.8 and from 23.0.0 until 23.1.1, the @nx/docker release pipeline builds docker tag, image lookup, and docker push invocations as shell command strings. The release.docker.repositoryName and registryUrl configuration values are interpolated into those strings and passed to /bin/sh -c, allowing shell syntax in untrusted Nx configuration to execute during nx release version or nx release publish. A pull request or repository configuration change can therefore execute commands with the release job's privileges and expose registry credentials or cloud tokens, and dry-run publishing does not prevent the vulnerable pre-check command from executing. This issue is fixed in versions 22.7.8 and 23.1.1.
Blast Radius
ecosystem impact- 3 npm packages depend on @nx/docker (1 direct, 2 indirect)
Ecosystem-wide dependent count for version 21.4.0.
Technical POC Analysis
CWE-78 (OS command injection).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The Nx @nx/docker release pipeline (versions 21.4.0 through 22.7.7 and 23.0.0 through 23.1.0) contains a command injection flaw that allows an attacker who can influence release configuration to execute arbitrary shell commands with release job privileges, potentially exfiltrating registry credentials and cloud tokens. This poses a conditional but serious CI/CD supply-chain risk to organizations using affected Nx versions, impacting development and release teams. Leadership should prioritize immediate access controls and monitoring while awaiting a vendor patch, as no public exploit identified at time of analysis.
No vendor-released patch identified at time of analysis; interim mitigations include strict access control on release configuration (release.docker.repositoryName and registryUrl), least-privilege CI/CD runners, network egress filtering, frequent credential rotation, and monitoring for anomalous command execution.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Apache Log4j2 contains a critical JNDI injection vulnerability known as 'Log4Shell' that allows unauthenticated remote c
Embedded malicious code in Nx Console (the editor extension for Nx and Lerna) version 18.95.0 turned a trusted developer
Nx versions prior to V2512 contain an insufficient input validation flaw in the PDF export functionality that permits lo
Cross-origin information disclosure in the Nx monorepo graph server (versions 17.0.4 through 22.7.1) exposes the full pr
Path traversal in Nx's migration planner lets a hostile dependency write attacker-controlled bytes outside the temporary
EUVD-2026-91767
GHSA-6vc5-vf29-ffr2
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB