Read the docs

Nx: OS command injection in the @nx/docker release pipeline

Priority LOW 33CWE-78Published · Updated

Key facts

Attack vector
Local
Privileges required
None
User interaction
Passive
Attack complexity
Low
Attack requirements
Present
Impact type
Code execution
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-78.

Summary

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00148 4th percentileScored 2026-11-07
Fix Fixed nx (nrwl): 22.7.8, 23.1.1@nx/docker (npm): 22.7.8, 23.1.1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
nrwlnx21.4.0 to before 22.7.8; 23.0.0 to before 23.1.122.7.8, 23.1.1Patch availableCNA
—@nx/docker (npm)21.4.0 to before 22.7.822.7.8Patch availableGHSA-6vc5-vf29-ffr2
—@nx/docker (npm)23.0.0 to before 23.1.123.1.1Patch availableGHSA-6vc5-vf29-ffr2
  • nx Vendornrwl Affected 21.4.0 to before 22.7.8; 23.0.0 to before 23.1.1 Fixed in 22.7.8, 23.1.1 Patch available CNA
  • @nx/docker (npm) Vendor— Affected 21.4.0 to before 22.7.8 Fixed in 22.7.8 Patch available GHSA-6vc5-vf29-ffr2
  • @nx/docker (npm) Vendor— Affected 23.0.0 to before 23.1.1 Fixed in 23.1.1 Patch available GHSA-6vc5-vf29-ffr2

Remediation

  • Fix · CNA nx (nrwl) Fixed in 22.7.8, 23.1.1
  • Fix · GHSA-6vc5-vf29-ffr2 @nx/docker (npm) Fixed in 22.7.8 Advisory →
  • Fix · GHSA-6vc5-vf29-ffr2 @nx/docker (npm) Fixed in 23.1.1 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-104859
  2. 2026-10-04 Priority changed: MEDIUM → LOW
  3. 2026-10-06 CISA SSVC decision points changed
  4. 2026-10-06 Alias added: GHSA-6vc5-vf29-ffr2
  5. 2026-10-06 Fix available: npm/@nx/[email protected], npm/@nx/[email protected] · GHSA-6vc5-vf29-ffr2
  6. 2026-10-06 CVSS score added · GHSA-6vc5-vf29-ffr2
  7. 2026-10-06 Weakness changed · GHSA-6vc5-vf29-ffr2
  8. 2026-10-06 6 new references · GHSA-6vc5-vf29-ffr2

References

  • TI-2026-50091 Nx: Zip-Slip in the self-hosted remote cache CVSS 4.0HIGH 8.7
  • TI-2026-66138 Nx daemon and plugin worker sockets are accessible to other local users CVSS 4.0HIGH 8.5
  • TI-2026-82771 OS command injection in Nx @nx/maven and @nx/gradle via nx.json CVSS 4.0HIGH 7.3
  • TI-2026-39559 Nx: `nx graph` dev server permissive CORS policy CVSS 3.1MEDIUM 5.9
  • TI-2026-66137 Nx: Path traversal in nx migrate package-migrations extraction CVSS 4.0MEDIUM 5.8

Sources