Summary
CVE-2026-78689 is a high-severity heap-based buffer overflow (CWE-122) in NGINX JavaScript (njs), affecting the ngx_http_js_module‘s XML namespace prefix list parser reachable through the xml.exclusiveC14n() method. An unauthenticated, remote attacker can trigger an out-of-bounds heap write by supplying a crafted XML namespace prefix list to an affected configuration, causing NGINX worker crashes or unbounded worker memory growth; F5 states code execution "has not been demonstrated" but "cannot be ruled out." The issue carries a CVSS v3.1 base score of 8.1 (High) and a CVSS v4.0 score of 9.2 (Critical).
Technical details
- Root cause: A parsing flaw in njs’s XML module namespace prefix list parser causes an out-of-bounds write past the end of a heap allocation when
xml.exclusiveC14n()processes a crafted prefix list. - Affected engines: Both the default njs engine and the QuickJS (qjs) engine are affected. With njs, the overflow corrupts adjacent heap objects and crashes the worker process. With QuickJS, the same call additionally leaks the prefix list on every invocation, causing worker memory usage to grow across requests.
- Trigger conditions: Exploitation requires an NGINX configuration that passes an externally controlled XML namespace prefix list into
xml.exclusiveC14n(). F5 specifically flags its officialnginxinc/nginx-samlreference implementation as vulnerable: it readsInclusiveNamespaces/@PrefixListfrom an untrusted SAML message and passes it toxml.exclusiveC14n()before the SAML signature is verified — meaning a valid signature is not required. A single crafted SAMLResponse,Assertion,LogoutRequest, orLogoutResponseis sufficient to trigger it. - Attack vector: Network, unauthenticated, no user interaction required. CVSS v3.1 attack complexity is rated High (AC:H), reflecting that exploitation conditions depend on the specific configuration and data processed.
- Impact: Denial of service via repeated worker restarts or worker memory exhaustion; potential code execution is not excluded by the vendor. F5 notes there is no control-plane exposure — this is strictly a data-plane issue.
Affected software
- NGINX JavaScript (njs), module
ngx_http_js_module: versions 0.7.10 up to (but not including) 1.0.1 - Deployments using the
xmlmodule’sxml.exclusiveC14n()method with externally influenced input are at risk; the officialnginxinc/nginx-samlreference implementation is specifically confirmed vulnerable during SAML signature verification workflows - Note: software versions that have reached End of Technical Support (EoTS) were not evaluated by the vendor
Severity
- CVSS v3.1 Base Score: 8.1 (High)
- Vector:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - (Vendor also published a CVSS v4.0 score of 9.2, Critical)
Mitigation and recommended actions
- Immediate: Upgrade NGINX JavaScript (njs) to version 1.0.1 or later, which resolves the parser flaw.
- If no patch can be applied immediately: No official workaround is available. Organizations using SAML integrations built on the
nginxinc/nginx-samlreference implementation (or any custom configuration that feeds untrusted input intoxml.exclusiveC14n()) should treat exposed SAML SSO/SLO endpoints as high risk and consider temporarily disabling or restricting access to affected endpoints until the njs upgrade is applied. - Audit all NGINX configurations for use of the
xmlmodule andxml.exclusiveC14n()to confirm whether externally controlled data reaches this method, and prioritize patching any internet-facing instances first.

