Read the docs

Nx: Path traversal in nx migrate package-migrations extraction

Priority LOW 25CWE-22Published · Updated

Key facts

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

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.

Summary

Nx is a monorepo solution for TypeScript and polyglot codebases. From 13.10.0 until 22.7.10 and 23.2.1, Nx migration planning reads the nx-migrations.migrations value from a target package manifest without validating that it is a contained relative path. A hostile direct dependency or a package introduced through a trusted package's packageGroup can supply .. segments or an absolute path, causing nx migrate to join an escaping destination onto its temporary directory. The migration archive can then write attacker-controlled bytes outside the temporary directory, while opening the destination stream can truncate an existing writable file even when no archive entry matches. This occurs during migration planning before review of the migration list or use of --run-migrations; the vulnerable installed Nx copy is reached when the normal nx@latest handoff is bypassed with NX_USE_LOCAL, NX_MIGRATE_USE_LOCAL, NX_MIGRATE_CLI_VERSION, --run-id, or fallback after a temporary-install failure. This issue is fixed in versions 22.7.10 and 23.2.1.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00172 6th percentileScored 2026-11-07
Fix Fixed nx (nrwl): 22.7.10, 23.2.1nx (npm): 22.7.10, 23.2.1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

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

Affected products

VendorProductAffected versionsFixed inStatusSource
nrwlnx13.10.0 to before 22.7.10; 23.0.0 to before 23.2.122.7.10, 23.2.1Patch availableCNA
—nx (npm)13.10.0 to before 22.7.1022.7.10Patch availableGHSA-hrvq-x7jp-36xv
—nx (npm)23.0.0 to before 23.2.123.2.1Patch availableGHSA-hrvq-x7jp-36xv
  • nx Vendornrwl Affected 13.10.0 to before 22.7.10; 23.0.0 to before 23.2.1 Fixed in 22.7.10, 23.2.1 Patch available CNA
  • nx (npm) Vendor— Affected 13.10.0 to before 22.7.10 Fixed in 22.7.10 Patch available GHSA-hrvq-x7jp-36xv
  • nx (npm) Vendor— Affected 23.0.0 to before 23.2.1 Fixed in 23.2.1 Patch available GHSA-hrvq-x7jp-36xv

Remediation

  • Fix · CNA nx (nrwl) Fixed in 22.7.10, 23.2.1
  • Fix · GHSA-hrvq-x7jp-36xv nx (npm) Fixed in 22.7.10 Advisory →
  • Fix · GHSA-hrvq-x7jp-36xv nx (npm) Fixed in 23.2.1 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

Not affected: 5 products
  • Red Hat Ansible Automation Platform 2
  • Red Hat Enterprise Linux 10
  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux 9
  • Red Hat Hardened Images

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-104853
  2. 2026-10-05 Affected versions changed · Red Hat
  3. 2026-10-05 CVSS score added · Red Hat
  4. 2026-10-06 Alias added: GHSA-hrvq-x7jp-36xv
  5. 2026-10-06 Fix available: npm/[email protected], npm/[email protected] · GHSA-hrvq-x7jp-36xv
  6. 2026-10-06 CVSS score added · GHSA-hrvq-x7jp-36xv
  7. 2026-10-06 Weakness changed · GHSA-hrvq-x7jp-36xv
  8. 2026-10-06 9 new references · GHSA-hrvq-x7jp-36xv

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-66140 Nx: OS command injection in the @nx/docker release pipeline CVSS 4.0HIGH 7.3
  • TI-2026-39559 Nx: `nx graph` dev server permissive CORS policy CVSS 3.1MEDIUM 5.9

Sources