Skip to content
NewA calmer, faster ZeroHour
Vulnerability5 · 2 reads

CVE-2026-101019

njs XML entity attributes bypass nginx-saml checks

CVSS 4.0
8.3 high
EPSS
—
Published
·
Modified
Analyze CVE-2026-101019 with Vani AIImpact, affected versions, exploitation status, mitigations and detection

NGINX JavaScript (njs) mishandles XML attributes that contain internal entity references during canonicalization, so results disagree with libxml2. In both the built-in njs and QuickJS backends, the $attr$Name getter can return undefined for an attribute that is actually present, and the $attrs getter can return a value taken only from the first attribute child. An unauthenticated attacker who already has a genuinely signed document can make security-relevant attributes look missing or truncated while signature verification still succeeds. In nginx-saml with the built-in njs backend, that can bypass expiry, Destination, and request-correlation checks and allow replay or acceptance of a response outside its intended context; it does not forge signatures or identities and is a data-plane issue only. It is not listed in CISA KEV and no public proof-of-concept is known.

What to do: Apply F5/NGINX updates for njs and nginx-saml as soon as a fixed build is published; the advisory does not list version numbers. Until then, treat nginx-saml on the built-in njs backend as exposed and do not rely on njs $attr$Name or $attrs results for expiry, Destination, or request-correlation checks on signed XML. Prefer a validation path that is not the affected njs XML canonicalization behavior, and review logs for replayed or out-of-context SAML responses.

ProductAffected
F5 NGINX JavaScript (njs)—
F5 nginx-samlConfirmed affected when run with the built-in njs backend; exact versions not enumerated.
Estimated exposure
No basis for an estimate.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description · NVD

Description NGINX JavaScript (njs) has a vulnerability where the njs XML module exposes entity-backed XML attributes inconsistently with libxml2 canonicalization. In both the built-in njs and QuickJS backends during the canonicalization process, the $attr$Name getter may return undefined for an explicitly present attribute containing an internal entity reference. The $attrs getter may return a value derived only from the first attribute child. This may allow an unauthenticated attacker that invests significant effort in obtaining a genuinely signed document to skip validation while signature verification succeeds. An nginx-saml deployment is a confirmed affected consumer when run with the built-in njs backend. Impact In affected signed-XML consumers, an unauthenticated attacker can cause security-relevant attributes to appear absent or truncated while signature verification succeeds. In nginx-saml, this can bypass expiry, Destination, and request-correlation checks, enabling replay or acceptance of a response outside its intended context. It does not permit signature or identity forgery, or a direct availability impact. 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.

Weakness
CWE-436
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/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:X

In the news

1 story