GHSA-qm8w-vx34-5j9j

Suggest an improvement
Source
https://github.com/advisories/GHSA-qm8w-vx34-5j9j
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-qm8w-vx34-5j9j/GHSA-qm8w-vx34-5j9j.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-qm8w-vx34-5j9j
Aliases
Published
2026-10-30T14:42:14Z
Modified
2026-10-30T14:45:04Z
Severity
  • 7.3 (High) CVSS_V4 - 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 CVSS Calculator
Summary
@nx/maven and @nx/gradle have OS command injection via nx.json plugin options
Details

Summary

@nx/maven and @nx/gradle spawn their project-graph analyzers through a shell and interpolate plugin options read from nx.json straight into the command line. Because a shell parses the whole line, an option value containing shell syntax is executed as a command by any nx command that constructs the project graph. Anyone who clones a hostile repository, or who checks out a pull request that edits nx.json, runs the injected command with their own privileges.

Severity

A victim who runs an ordinary nx command in an attacker-supplied Maven or Gradle workspace gets code execution as themselves. In most such workspaces an attacker who can write nx.json can already run code through the repository's build files (./mvnw, pom.xml, and the Gradle equivalents), so the genuinely new exposure is narrow — for example CI building a fork's pull request where nx.json is writable but the build files are not. We have no evidence of exploitation in the wild.

Affected & Patched Versions

Package Vulnerable Patched
@nx/maven >= 22.0.2, < 22.7.9; >= 23.0.0, < 23.1.2 22.7.9, 23.1.2
@nx/gradle >= 21.0.0, < 22.7.9; >= 23.0.0, < 23.1.2 22.7.9, 23.1.2

[!IMPORTANT] Workspaces that register neither @nx/maven nor @nx/gradle in nx.json are unaffected — the vulnerable code only runs from those plugins' graph-construction paths, and no other Nx plugin shares this pattern.

Remediation

Upgrade to 22.7.9 (22.x line) or 23.1.2 (23.x line) or later:

nx migrate 23.1.2

Upgrade both nx and the affected plugin (@nx/maven and/or @nx/gradle). The plugin's fix depends on code that ships in the nx package, so bumping the plugin without a matching nx upgrade will not resolve it.

There is no configuration to change — upgrading is the whole fix. If you cannot upgrade yet, only run nx commands in repositories you trust, since a malicious nx.json can execute code on a vulnerable version.

Details

Both plugins spawn their analyzer through a shell and interpolate nx.json plugin options into the command, so those option values are shell source. For Maven the injectable value is the targetNamePrefix option; for Gradle it is broader, since every plugin option is mapped into a -P argument and arbitrary option names are accepted, making both the name and value of any option injectable.

Credits

  • Arkadiusz Marta (RE:SOURCE) — Reporter
Database specific
{
    "cwe_ids":  [
        "CWE-78",
        "CWE-88"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-10-30T14:42:14Z",
    "nvd_published_at":  "2026-10-29T22:17:00Z",
    "severity":  "HIGH"
}
References

Affected packages

npm / @nx/maven

Package

Name
@nx/maven
View open source insights on deps.dev
Purl
pkg:npm/%40nx/maven

Affected ranges

Type
SEMVER
Events
Introduced
22.0.2
Fixed
22.7.9

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-qm8w-vx34-5j9j/GHSA-qm8w-vx34-5j9j.json"

npm / @nx/maven

Package

Name
@nx/maven
View open source insights on deps.dev
Purl
pkg:npm/%40nx/maven

Affected ranges

Type
SEMVER
Events
Introduced
23.0.0
Fixed
23.1.2

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-qm8w-vx34-5j9j/GHSA-qm8w-vx34-5j9j.json"

npm / @nx/gradle

Package

Name
@nx/gradle
View open source insights on deps.dev
Purl
pkg:npm/%40nx/gradle

Affected ranges

Type
SEMVER
Events
Introduced
21.0.0
Fixed
22.7.9

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-qm8w-vx34-5j9j/GHSA-qm8w-vx34-5j9j.json"

npm / @nx/gradle

Package

Name
@nx/gradle
View open source insights on deps.dev
Purl
pkg:npm/%40nx/gradle

Affected ranges

Type
SEMVER
Events
Introduced
23.0.0
Fixed
23.1.2

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-qm8w-vx34-5j9j/GHSA-qm8w-vx34-5j9j.json"