F5 shipped out-of-band patches on June 17, 2026 for two critical NGINX flaws, CVE-2026-42530 and CVE-2026-42055, both CVSS 9.2 and both unauthenticated. The headline is scary, but the exploitable surface is narrow. Here is which versions and configs are at risk, why it is a denial of service for most rather than code execution, and what to do.
Two Critical NGINX CVEs, And A Calmer Read
On June 17, 2026, F5 shipped an out-of-band advisory for NGINX covering two critical vulnerabilities, both scored CVSS 9.2 and both reachable by a remote, unauthenticated attacker. That sounds like a drop-everything moment, and patching is worth doing promptly. But the exploitable surface is narrower than the headline, and for most deployments the realistic worst case is a crash, not remote code execution. Here is the honest triage.
The Two Bugs
CVE-2026-42530 is a use-after-free in the ngx_http_v3_module, the HTTP/3 QUIC module. CVSS v4 is 9.2, and the CVSS v3.1 score is 8.1. A remote attacker can use a specially crafted HTTP/3 session to reopen a QPACK encoder stream and trigger the flaw, but only when NGINX is actually configured to serve HTTP/3. Affected: NGINX Open Source 1.31.0 and 1.31.1. Fixed in 1.31.2.
CVE-2026-42055 is a heap-based buffer overflow in the ngx_http_proxy_v2_module and ngx_http_grpc_module. CVSS v4 is 9.2. It is reachable only when NGINX proxies HTTP/2 upstream traffic. Affected: NGINX Open Source 1.13.10 through 1.31.1, plus NGINX Plus R33 through R36 and 37.0.0 to 37.0.1. Fixed in NGINX Open Source 1.31.2 and 1.30.3, and NGINX Plus 37.0.2.1 and R36 P6.
RCE Or DoS, Read The Fine Print
Both bugs cause the NGINX worker process to restart, which is a denial of service. Remote code execution is only on the table if Address Space Layout Randomization is disabled, or the attacker can bypass it. On a modern Linux box ASLR is on by default, so for the large majority of servers the realistic impact is a flapping worker, not arbitrary code execution. That is still worth patching, but it is not internet-to-root in a single packet.
Who Is Actually At Risk
For CVE-2026-42530, two things must both be true: you run NGINX 1.31.0 or 1.31.1, and you serve HTTP/3. HTTP/3 is still opt-in and far from universal in production, and most servers on the stable branches (1.24, 1.26, 1.28) are not on the 1.31 mainline at all. If you do not serve HTTP/3, this one does not touch you.
For CVE-2026-42055, the version range is wide, but exploitation needs three conditions at once: you proxy HTTP/2 upstream (using proxy_http_version 2 or grpc_pass), you have set ignore_invalid_headers off (the default is on), and your large_client_header_buffers size is larger than 2 MB (the default is far smaller). All three together is an unusual configuration. If your config does not match the full set, you are not exploitable, though you should still patch.
Check Your Exposure In Two Minutes
- Version. Run
nginx -v. If you are below 1.31.2, or below 1.30.3 on the 1.30 branch, you are in range for at least one of these. - HTTP/3. Search your config for
http3,quic, or alistenline withquic. Nothing there means CVE-2026-42530 does not apply to you. - The proxy combination. Search for
grpc_pass,proxy_http_version 2,ignore_invalid_headers off, and anylarge_client_header_buffersover 2 MB. You need the full combination to be exposed to CVE-2026-42055.
What To Do
- Patch to a fixed release: NGINX Open Source 1.31.2 or 1.30.3, or NGINX Plus 37.0.2.1 or R36 P6. NGINX Gateway Fabric users should move to 2.6.4, which also resolves two high-severity issues, CVE-2026-11311 and CVE-2026-50107.
- If you cannot patch right away and you match the preconditions, break them as a stopgap: drop the HTTP/3
quiclisteners for CVE-2026-42530, or restoreignore_invalid_headersto on, or lowerlarge_client_header_buffersbelow 2 MB for CVE-2026-42055. - Confirm ASLR is enabled so the worst case stays a crash rather than code execution. On Linux,
cat /proc/sys/kernel/randomize_va_spaceshould return 2. - Reload NGINX after patching and confirm the version with
nginx -v.
The Takeaway
Patch these, but keep the panic proportional. A 9.2 score does not mean every NGINX on the internet is one request from root. These two need specific versions and, in one case, an uncommon configuration, and for most deployments the realistic impact is a worker crash rather than code execution. Triage against your actual version and config, fix on a sensible schedule, and do not let the score alone decide how loudly you react.
Triaging CVEs against real exposure instead of the raw score, and patching a fleet without downtime, is exactly what our security and compliance and server management work covers. For the same calm-triage approach applied to the earlier NGINX flaw, see our note on NGINX Rift.
Sources
The two CVEs, their CVSS v4 9.2 scores, the affected and fixed version ranges, and the exploit preconditions are from F5's out-of-band NGINX advisory of June 17, 2026, the NGINX security advisories page, and the NVD entries for CVE-2026-42530 (CWE-416, CVSS v4 9.2 and CVSS v3.1 8.1) and CVE-2026-42055. Both issues cause a worker-process denial of service by default, with remote code execution contingent on ASLR being disabled or bypassed.
Or read how we handle it in Security & Compliance.
Related News
Why GitLab 19.5.1 Is Worth Installing This Week
GitLab fixed a critical bug present in every release since 7.0 and shipped the fix for seven release lines, so most teams can patch without a major jump. GitLab.com is already covered. Here is how to check your version and upgrade in one step.
SecurityPHP Patches Two Critical Flaws on Wednesday. Prepare Today
The PHP security team will ship fixes for two critical vulnerabilities, both CVSS v4.0 9.2, on October 21 at 14:00 UTC. Details come with the release, so today is for finding every PHP you run and knowing where its update will come from.
Securitynginx Patches Three CVEs, One a 9.2 Critical Bug That Sat Hidden in the Code Since 2011
nginx patched three CVEs on July 15, 2026: a 9.2-rated critical heap buffer overflow in map regex matching (CVE-2026-42533) present since 2011, an uninitialized-memory bug that unnamed regex captures trigger through either the slice directive or ordinary background cache updates (CVE-2026-60005), and a use-after-free in the SSI filter (CVE-2026-56434) present since 2009. Fixed in 1.30.4 stable and 1.31.3 mainline. With the config patterns to audit for, five read-only audit commands, and the detail most coverage gets wrong about the second bug.