Skip to main content

NGINX JavaScript CVE-2026-78689

| EUVDEUVD-2026-70142 CRITICAL
Heap-based Buffer Overflow (CWE-122)
2026-09-02 f5 GHSA-3gxx-pmrm-ghvv
9.2
CVSS 4.0 · Vendor: f5
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send crafted SAML message with malformed PrefixList attribute
  2. Delivery
    SAML SP passes PrefixList to xml.exclusiveC14n() before signature verification
  3. Exploit
    njs XML namespace parser performs out-of-bounds heap write
  4. Execution
    adjacent heap objects corrupted or prefix list leaked
  5. Persist
    NGINX worker crash or memory exhaustion
  6. Impact
    repeated requests sustain denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Two distinct exploitation paths exist. First, generic njs path: NGINX must be configured with application code that calls xml.exclusiveC14n() and passes a namespace prefix list value derived from attacker-controlled input - this requires a non-default, explicitly written configuration and is not present in stock NGINX deployments. Second, SAML reference implementation path (higher real-world risk): any deployment using the nginxinc/nginx-saml reference SAML SP unconditionally passes InclusiveNamespaces/@PrefixList from any incoming SAML message (Response, Assertion, LogoutRequest, or LogoutResponse) to xml.exclusiveC14n() before signature verification; a valid SAML signature is not required, and any unauthenticated network client that can reach the SSO endpoint can trigger the flaw. Exploitation is data-plane only; no control-plane or management-interface exposure exists. The js_engine directive setting determines njs vs. QuickJS behavior (crash vs. memory leak), but does not affect exploitability. Code execution requires heap layout conditions beyond the attacker's control and has not been demonstrated.

Impact

The vendor-supplied CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H (8.1) reflects the worst-case scenario including potential code execution; however, the F5 advisory explicitly states RCE has not been demonstrated and cannot be ruled out on all platforms. Confirmed impact is DoS via repeatable worker restarts (njs) or heap exhaustion (QuickJS). AC:H correctly reflects the prerequisite that externally controlled input must reach xml.exclusiveC14n() - a non-default, explicitly configured behavior. For the SAML scenario the attack surface is substantially wider: any NGINX deployment using the nginxinc/nginx-saml reference implementation exposes an unauthenticated, network-reachable path to the flaw with no signature credential required. No CISA KEV listing and no confirmed public exploit code are available, reducing short-term automated exploitation risk, but the SAML attack path is fully described in the advisory and the technical barrier to DoS is low. EPSS data is absent from available inputs. Defenders should treat SAML-enabled NGINX deployments using the reference implementation as higher priority than generic njs deployments.

Exploit ScenarioDerived

An attacker sends a crafted SAML Response to an NGINX-based SAML service provider running the nginxinc/nginx-saml reference implementation, embedding a malformed InclusiveNamespaces/@PrefixList value. Because the implementation calls xml.exclusiveC14n() before verifying the SAML signature, no cryptographic credential is needed. The resulting out-of-bounds heap write crashes the NGINX worker; the attacker repeats the request across automatic worker restarts, maintaining a sustained denial-of-service condition against the SSO endpoint from an unauthenticated network position.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 02, 2026

Heap out-of-bounds write in NGINX JavaScript (njs) xml.exclusiveC14n() allows unauthenticated remote attackers to crash NGINX worker processes or cause unbounded memory growth, with theoretical code execution that has not been demonstrated. The vulnerability is directly reachable in the nginxinc/nginx-saml reference SAML SP implementation, which passes untrusted InclusiveNamespaces/@PrefixList values to xml.exclusiveC14n() before signature verification completes - meaning no valid SAML signature is required to trigger it. Both the njs (default) and QuickJS engines are affected, with differing crash-vs-leak behavior, but both result in denial of service. No public exploit is identified at time of analysis.

RemediationAI

Consult the F5 advisory at https://my.f5.com/manage/s/article/K000162602 for exact patched njs release versions, which are not independently confirmed from the available input data. As an immediate compensating control for SAML deployments, validate and sanitize InclusiveNamespaces/@PrefixList values before they reach xml.exclusiveC14n(), or restructure the implementation to defer PrefixList parsing until after SAML signature verification succeeds - the latter eliminates the unauthenticated attack path entirely. For internet-exposed SAML SSO endpoints that cannot be patched promptly, consider WAF rules that block SAML messages containing InclusiveNamespaces elements with PrefixList attributes, accepting the trade-off that valid SAML responses using C14N namespace inclusion may also be blocked. For general njs deployments, audit any js_content or js_filter blocks that pass externally sourced input to xml.exclusiveC14n() and restrict those paths to trusted data only. Switching from QuickJS to the njs engine converts heap leak to crash behavior but does not eliminate the OOB write.

Affected VersionsENISA

NGINX JavaScript 0.7.10 <1.0.1

Affected Packages

euvd nginx_javascript fix: 1.0.1

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

NGINX JavaScript (njs) is F5's lightweight JavaScript engine embedded in NGINX for scripting HTTP and stream processing, identified by CPE cpe:2.3:a:f5:nginx_javascript:*:*:*:*:*:*:*:*. The root cause (CWE-122, heap-based buffer overflow) is in the XML module's namespace prefix list parser, invoked through xml.exclusiveC14n() - NGINX's implementation of Exclusive XML Canonicalization (C14N) as defined in the XML Digital Signature standard. C14N uses an InclusiveNamespaces/@PrefixList to determine which namespace declarations appear in canonical form during signature processing. A crafted prefix list causes an out-of-bounds write past the end of a heap allocation. Under the njs engine (active when the js_engine directive is absent), adjacent heap objects are corrupted, crashing the worker. Under the QuickJS engine, the prefix list is additionally leaked on every call, producing unbounded worker memory growth across requests. The architectural flaw in the nginxinc/nginx-saml reference implementation is that PrefixList is consumed before the SAML message's signature is verified, placing attacker-controlled data on the vulnerable code path before any trust boundary is enforced.

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

Vendor (f5) PRIMARY 9.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

AC:H for non-default config or SAML reference implementation prerequisite; C:H/I:H retained for plausible worst-case heap OOB RCE, though undemonstrated; A:H for confirmed worker DoS.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (f5).

CVSS VectorVendor: f5

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

4
Patch available
Sep 02, 2026 - 17:02 EUVD
Severity Changed
Sep 02, 2026 - 16:22 NVD
HIGH CRITICAL
CVSS changed
Sep 02, 2026 - 16:22 NVD
8.1 (HIGH) 9.2 (CRITICAL)
CVE Published
Sep 02, 2026 - 15:40 cve.org
CRITICAL 9.2

DescriptionCVE.org

Description

NGINX JavaScript (njs) has a vulnerability in the XML module's namespace prefix list parser, reachable through the xml.exclusiveC14n() method. An unauthenticated remote attacker can trigger it when an affected NGINX configuration passes an externally controlled XML namespace prefix list to that method. Both the njs and the QuickJS (qjs) engines are affected. A crafted prefix list causes an out-of-bounds write past the end of a heap allocation. With the njs engine, which is the engine used when the js_engine directive is absent, this corrupts adjacent objects and crashes the NGINX worker. With the QuickJS engine, the same call additionally leaks the prefix list on every invocation, causing worker memory to grow across requests. The official nginxinc/nginx-saml reference implementation is affected during SAML signature verification. It reads InclusiveNamespaces/@PrefixList from an untrusted SAML message and passes it to xml.exclusiveC14n() before the signature has been verified, so a valid SAML signature is not required. A crafted SAML Response, Assertion, LogoutRequest, or LogoutResponse is sufficient. Code execution has not been demonstrated and cannot be ruled out for all platforms, as the effect of the out-of-bounds write depends on conditions beyond the attacker's control.

Impact

This vulnerability allows remote attackers to cause a denial of service on the NGINX system, either through repeatable worker restarts or through worker memory growth or possibly trigger code execution. 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.

Executive ViewAI

Why It Matters

NGINX SAML service provider implementations are vulnerable to unauthenticated remote denial-of-service attacks due to a heap memory flaw in the njs XML processor. Attackers can crash NGINX worker processes or exhaust memory without valid credentials, directly disrupting authentication services for any organization using nginx-saml or custom NGINX-based SAML implementations. This affects the availability of authentication infrastructure with no vendor patch currently available.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable njs XML processing if not required for business operations; implement strict input validation on SAML request elements, particularly InclusiveNamespaces/@PrefixList parameters; deploy request rate limiting on SAML endpoints; configure automated worker restart on out-of-memory conditions; add monitoring for worker process crashes and memory anomalies; consider WAF rules to filter malformed SAML XML at network perimeter; evaluate alternative SAML implementations without njs dependency.

Threat Intelligence Overview

EPSS Score
0.4%
Top 66% exploitable
Prevalence
Medium
njs is an optional NGINX module; SAML SSO on NGINX is common in enterprise
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy