CVE-2026-18329
largeFail-open access bypass in NGINX njs/QuickJS js_access handlers
CVE-2026-18329 is a fail-open error-handling flaw in the NGINX JavaScript (njs) and QuickJS (qjs) engines that can cause access-control failures to fall through to an allow. It is triggered when a js_access handler performs asynchronous request body processing and an exception is thrown during the asynchronous access-control evaluation before an explicit deny is returned, causing the js_access phase to complete as if access were granted. An unauthenticated attacker can send a crafted HTTP request that triggers this error condition and thereby bypass js_access-based authentication or authorization, gaining access to protected resources. Only NGINX deployments running njs or qjs with such js_access handlers are affected, and the issue is confined to the data plane; the control plane is not exposed. No exploitation has been observed to date: EPSS is 0.4% (31st percentile), the flaw is not in CISA KEV, and no public proof-of-concept is known; F5 notes that versions past End of Technical Support were not evaluated.
What to do: Upgrade njs and qjs to the versions listed as fixed in the F5 advisory (exact fixed versions are not included in the data provided). As an interim mitigation, review js_access handlers: avoid asynchronous request-body processing in access checks or ensure every error/exception path returns an explicit deny rather than relying on thrown exceptions. Confirm which NGINX configurations enable njs or qjs and whether any js_access handlers match this pattern, noting that F5 has not evaluated EoTS versions.
| F5 / NGINX NGINX JavaScript (njs) engine (js_access phase in NGINX) | — |
| F5 / NGINX NGINX QuickJS (qjs) engine (js_access phase in NGINX) | — |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Description NGINX JavaScript (njs) and QuickJS (qjs) engines have a vulnerability when a js_access handler performs asynchronous request body processing and an exception is thrown during asynchronous access-control evaluation before an explicit access denial is returned. An unauthenticated attacker can exploit this vulnerability by sending a crafted HTTP request that triggers an error condition in the access validation logic. This may cause the js_access phase to fail open, allowing the request to proceed instead of being denied, resulting in an authentication or authorization bypass and unauthorized access to protected resources. Impact This vulnerability may allow remote attackers to bypass js_access controls. 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-636
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/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 news0 stories
No ingested article mentions this CVE yet.