Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach NGINX endpoint using njs xml.parse
-
DeliverySend malformed XML payload
-
ExploitTrigger unreleased libxml2 parser context
-
ExecutionRepeat requests to leak memory
-
ImpactExhaust worker, cause DoS
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Resource cleanup, leak prevention
|
| Exploitation Conditions | Requires an NGINX deployment where the optional njs (NGINX JavaScript) module is loaded AND the configured JavaScript logic calls xml.parse() on attacker-supplied XML in the data plane; absent that specific feature usage the leak is unreachable. The leak is triggered specifically by the xml.parse() failure path on malformed XML, so parsing of only well-formed, trusted XML is not affected. No authentication is required (CVSS PR:N) and exploitation is remote and unauthenticated, but impact accrues gradually across many requests against long-lived worker processes rather than from a single request, and the control plane is explicitly not exposed - this is a data-plane-only issue. |
| Impact | This is a moderate-severity denial-of-service issue, not a high-priority emergency. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a remote, low-complexity, unauthenticated vector, but the only impact is availability (VA:L) with no confidentiality or integrity effect, consistent with CWE-401 memory leak semantics - a gradual resource-exhaustion condition rather than direct code execution or crash-on-first-request. No EPSS score, CISA KEV listing, SSVC decision data, or POC is present in the provided intelligence, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the risk profile rests entirely on theoretical reachability. The score-limiting factor is reachability: the impact only materializes where the optional njs module is loaded AND application logic calls xml.parse() on attacker-controlled XML, which is a specific deployment pattern rather than a default NGINX install. Net: treat as a routine patch-when-convenient DoS fix for environments actually running njs XML parsing on untrusted input, not a drop-everything issue. One caveat to verify with F5: the advisory notes End-of-Technical-Support versions are not evaluated, so affected-version coverage for older releases is explicitly incomplete. |
| Exploit ScenarioDerived | An attacker repeatedly sends HTTP requests carrying malformed XML bodies to an NGINX endpoint whose njs configuration invokes xml.parse() on that input. Because the failed-parse path never releases the libxml2 parser context, each request leaks memory in the long-lived worker process, and sustained traffic drives unbounded memory growth until the worker is terminated or the host degrades. No authentication or user interaction is required (PR:N/UI:N), but no public proof-of-concept is identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Malformed XML parsed through NGINX JavaScript (njs) xml.parse() leaks libxml2 parser contexts, allowing unauthenticated remote requests to cause gradual, unbounded memory growth in long-lived NGINX worker processes and potentially leading to worker termination or denial of service. This is a moderate-severity data-plane issue and is exploitable only in deployments where the optional njs module is loaded and configured JavaScript logic calls xml.parse() on attacker-supplied XML; no public exploit identified at time of analysis. The independent assessment confirms remote unauthenticated reachability with low availability impact, and explicitly notes that the control plane is not exposed.
RemediationAI
The provided intelligence does not include an exact fixed njs version, so consult the F5 advisory at https://my.f5.com/manage/s/article/K000162614 for patched releases and upgrade to the vendor-recommended NGINX/njs version once published. Until a patch is applied, the highest-confidence mitigation is to stop passing attacker-controlled XML to njs xml.parse() or to disable the optional njs module entirely if JavaScript processing is not required; disabling the module removes the vulnerable code path but also disables all njs functionality. If xml.parse() must handle untrusted XML, pre-validate and reject malformed XML before it reaches xml.parse(), enforce strict request body/XML size limits, and rate-limit XML-processing endpoints, understanding that these controls reduce exposure rather than eliminate the leak. Because leaked parser contexts persist for the worker lifetime, periodically recycling NGINX worker processes can bound memory growth but will drop in-flight connections and should be treated only as a temporary stopgap. The issue is data-plane only; no control-plane exposure is present.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is in F5 NGINX JavaScript (njs), a module that adds JavaScript execution to NGINX worker processes in the data plane. njs exposes xml.parse() as a bridge to libxml2 for XML parsing; CVE-2026-101025 is a CWE-401 missing-release-of-memory issue in that bridge, where the failure path taken when xml.parse() encounters malformed XML does not register cleanup for the libxml2 parser context, so the context is never freed for the lifetime of the worker process. The CPE cpe:2.3:a:f5:nginx_javascript:*:*:*:*:*:*:*:* indicates the affected product is F5 NGINX JavaScript across versions, but the leak is reachable only when the optional module is loaded and application logic calls xml.parse() on attacker-controlled XML; deployments that parse only well-formed trusted XML, or that do not use the module, are not affected. Because each failed parse leaks a context and the worker process is long-lived, repeated malformed XML requests accumulate memory until the worker may be terminated; this is a data-plane-only issue with no control-plane exposure.
Know when Nginx Javascript gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Remote unauthenticated requests (AV:N/PR:N/UI:N) trigger a gradual memory leak with no confidentiality or integrity impact, yielding only partial availability loss (A:L) requiring sustained traffic.
Primary rating from Vendor (f5).
CVSS VectorVendor: f5
Lifecycle Timeline
2DescriptionCVE.org
Description
NGINX JavaScript (njs) has a vulnerability where the built-in njs engine leaks a libxml2 parser context when xml.parse() fails. The failure path did not register cleanup and the context was not released for the lifetime of the process. An unauthenticated attacker may send requests with malformed XML and can cause unbounded memory growth in long-lived NGINX worker processes.
Impact
This vulnerability may allow remote attackers to send requests that trigger repeated parsing of malformed XML and may lead to NGINX worker termination or denial of service. There is no control plane exposure; this is a data plane issue only.
Note: Software versions which have reached End of Technical Support (EoTS) are not evaluated.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Nginx Javascript
View allHeap out-of-bounds write in NGINX JavaScript (njs) xml.exclusiveC14n() allows unauthenticated remote attackers to crash
Heap buffer overflow in F5 NGINX JavaScript (njs) module versions 0.9.4 through 0.9.8 allows unauthenticated remote atta
NGINX JavaScript (njs) and QuickJS (qjs) fail open during the js_access phase when an exception is thrown inside an asyn
NULL pointer dereference in NGINX JavaScript (njs) crashes NGINX worker processes when an njs script calls ngx.fetch() a
Canonicalization inconsistency in the NGINX JavaScript (njs) XML module lets an unauthenticated attacker who already hol
EUVD-2026-101120
GHSA-4jj4-r79f-9v3x
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB