Nx is a monorepo solution for TypeScript and polyglot codebases. From 22.0.2 until 22.7.9 and 23.1.2 for @nx/maven, and from 21.0.0 until 22.7.9 and 23.1.2 for @nx/gradle, the plugins' project-graph analyzers launch through a shell and interpolate plugin options from nx.json into command arguments. The @nx/maven targetNamePrefix value and arbitrary @nx/gradle option names or values can therefore be interpreted as shell syntax whenever an nx command constructs the project graph. A user who runs Nx in an attacker-controlled repository or pull request can execute injected commands with the user's privileges, while workspaces that register neither affected plugin are not exposed to this path. Remediation requires upgrading both nx and each affected plugin to matching releases because the plugin fix depends on code in the nx package. This issue is fixed in versions 22.7.9 and 23.1.2.
https://github.com/nrwl/nx/security/advisories/GHSA-qm8w-vx34-5j9j
https://github.com/nrwl/nx/releases/tag/23.1.2
https://github.com/nrwl/nx/releases/tag/22.7.9
https://github.com/nrwl/nx/pull/36626
https://github.com/nrwl/nx/commit/c227f4780b054c512965c73aa480a48f9f781409
https://github.com/nrwl/nx/commit/60196b7cfcffcada35b6b90e53bf1a78d049b548
https://github.com/nrwl/nx/commit/02c5d59e8dbbbe30963c0181c6a22cd8c1190a25
Published: 2026-10-29
Updated: 2026-10-30
Base Score: 8.2
Vector: CVSS2#AV:N/AC:M/Au:S/C:C/I:C/A:P
Severity: High
Base Score: 9.8
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Severity: Critical
Base Score: 7.3
Vector: 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
Severity: High
EPSS: 0.0014