Nx: OS command injection via nx.json plugin options in @nx/maven and @nx/gradle (CVE-2026-119282)
Published Last modified Sources: CVE.org, OSV, Hersteller
What is affected, what to do
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.
Update @nx/gradle to version 23.1.2, @nx/maven to version 23.1.2.
- Affected
- Nrwl Nx
gte 21.0.0, < 22.7.9..* - Nx Maven
gte 21.0.0, < 22.7.9..* - Nx Gradle
gte 21.0.0, < 22.7.9..*
- Nrwl Nx
Not sure whether and how you are affected? Ask a question about this vulnerability
Metrics
7.3
Priority
XIEM Effective CVSS: highest available CVSS rating from NVD and vendor data.
Source: Vendor (CNA), CVSS v4
7.3
CVSS v4
Severity High on the scale from 0 to 10.
Source: CVE.org, OSV, Hersteller
—
EPSS score
No value is available for this vulnerability.
Show all metrics
- Severity
- High
Priority (0–325)
The priority score is a consolidated metric that condenses several individual signals into a single, action-guiding ranking: technical severity (CVSS), exploitation likelihood (EPSS), known-exploited status (KEV) and the context of the affected asset. The aim is to answer the only truly important question in vulnerability management: what first?
Read in glossary- 66.50 Methodology
Exploit maturity
An exploit is code or a technique that specifically uses a concrete vulnerability to force unintended behaviour — such as executing code or escalating privileges. It is the tool that turns a theoretical flaw into a practical attack.
Read in glossary- no public PoC known
XIEM Effective CVSS
XIEM® is the tiered managed-security operating model from NEOSEC and a registered trademark of NEOSEC GmbH. It extends classic SIEM — the central collection, normalisation and correlation of security-relevant events — with endpoint forensics, network visibility and deception technology, and consolidates them into three building tiers: Sentry, Orchestrate and Command.
Read in glossary- 7.3 Methodology
CVSS v4
CVSS is the globally established, open standard for assessing the technical severity of a vulnerability on a scale from 0 to 10. It describes how easily a flaw can be exploited and what damage it can cause — but not how likely its actual exploitation is. CVSS and the complementary EPSS deliberately answer different questions.
Read in glossary- 7.3
KEV status
The KEV catalogue is a list maintained by the US authority CISA of vulnerabilities for which active exploitation in the wild has been confirmed. It answers not the question „how severe?“ but „is it already being attacked?“ — thereby sharply prioritising patching.
Read in glossary- —
- Published
CWE
CWE is a catalogue of typical weakness types in software and hardware — such as flawed input validation, unsafe memory handling or poor authentication. Where a CVE names a concrete vulnerability in a concrete product, a CWE describes the underlying class of defect.
Read in glossary- CWE-78, CWE-88
Detection rules
No NEOSEC detection rule is available for this vulnerability yet.
Classification under NIS2 and CRA
Rule-based classification from exploitation status and severity. It does not replace a case-by-case assessment.
NIS2
NIS2 is EU Directive (EU) 2022/2555 to raise the level of cybersecurity across the Union. It substantially broadens obligations compared with the first NIS directive: more sectors, mandatory risk management, staged reporting duties and personal accountability of senior management.
Read in glossary- High technical severity: assess and remediate the vulnerability in vulnerability handling under Art. 21(2)(e) NIS2 and document the decision.
CRA
The CRA is EU Regulation (EU) 2024/2847 setting horizontal cybersecurity requirements for „products with digital elements“ — from industrial controllers and software to connected consumer devices. For the first time manufacturers must ensure security across the entire product lifecycle, handle vulnerabilities and provide security updates.
Read in glossary- From 11.12.2027, Annex I Part II CRA requires manufacturers of affected products with digital elements to handle vulnerabilities without delay and provide security updates.
ISO/IEC 27001
ISO/IEC 27001 is the internationally leading standard for an information security management system (ISMS). It describes a risk-based, process-oriented framework to systematically plan, implement, review and improve information security.
Read in glossary- Control A.8.8, management of technical vulnerabilities: assess relevance to your systems, plan remediation and keep evidence.
Description
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.
Source: NVD (NIST), OSV (Open Source Vulnerabilities), GitHub Security Advisories, cvelistv5
Affected products
The following versions are affected. Older releases of the same product line are also vulnerable unless stated otherwise.
| Affected versions | Fixed in | ||
|---|---|---|---|
| @nx | gradle |
|
|
| @nx | maven |
|
|
| nrwl | nx |
|
|
| npm | @nx/gradle |
|
|
| npm | @nx/maven |
|
|
Vendors and products
Weakness classes (CWE)
CWE-78Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
Base
The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.
Entry at MITRE CWE-78CWE-88Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')
Base
The product constructs a string for a command to be executed by a separate component in another control sphere, but it does not properly delimit the intended arguments, options, or switches within that command string.
Entry at MITRE CWE-88
References & sources
- github.comnrwl/nx/commit/02c5d59e8dbbbe30963c0181c6a22cd8c1190a25x_refsource_MISC, web
- github.comnrwl/nx/commit/60196b7cfcffcada35b6b90e53bf1a78d049b548x_refsource_MISC, web
- github.comnrwl/nx/commit/c227f4780b054c512965c73aa480a48f9f781409x_refsource_MISC, web
- github.comnrwl/nx/pull/36626x_refsource_MISC, web
- github.comnrwl/nx/releases/tag/22.7.9x_refsource_MISC, web
- github.comnrwl/nx/releases/tag/23.1.2x_refsource_MISC, web
- github.comnrwl/nx/security/advisories/GHSA-qm8w-vx34-5j9jx_refsource_CONFIRM, web
- NVD (NIST)vuln/detail/CVE-2026-119282advisory
- github.comnrwl/nxpackage
Changes to this CVE
Who changed this CVE and when: NVD (analysis, affected products, CVSS), the CVE publisher (CNA) and additional providers such as CISA (ADP).
ReceivedGitHub
CVSS V4.0: AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Weakness type: CWE-78, CWE-88
Description added or changed
Show 12 original changes
Individual changes of this event as published by NVD Type Action Before After Description added —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.CVSS added —AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XWeakness type (CWE) added —CWE-78Weakness type (CWE) added —CWE-88Affected versions (publisher) added —New affected value received. <a href="https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/119xxx/CVE-2026-119282.json">CVE-2026-119282</a>Reference added —https://github.com/nrwl/nx/commit/02c5d59e8dbbbe30963c0181c6a22cd8c1190a25Reference added —https://github.com/nrwl/nx/commit/60196b7cfcffcada35b6b90e53bf1a78d049b548Reference added —https://github.com/nrwl/nx/commit/c227f4780b054c512965c73aa480a48f9f781409Reference added —https://github.com/nrwl/nx/pull/36626Reference added —https://github.com/nrwl/nx/releases/tag/22.7.9Reference added —https://github.com/nrwl/nx/releases/tag/23.1.2Reference added —https://github.com/nrwl/nx/security/advisories/GHSA-qm8w-vx34-5j9jSource identifier: security-advisories@github.com
Embed badge
Show the severity and KEV status of this vulnerability on your site – with a link back here. The image is updated hourly.
<a href="https://intel.neosec.eu/en/cve/CVE-2026-119282"><img src="https://intel.neosec.eu/badge/cve/CVE-2026-119282.svg?lang=en" alt="CVE-2026-119282 – NEOSEC Intel" height="20"></a>