Voltar à sala de imprensa
Ameaças

NGINX Patches Five Flaws, Including Possible RCE and a TLS Client-Cert Bypass

NGINX 1.30.6 and 1.31.7 fix three memory bugs F5 scores 9.2, a TLS ticket-key flaw that may skip client-certificate checks, and an HTTP/3 request issue. None triggers on a default install — here's how to tell if your config is exposed.

NGINX Patches Five Flaws, Including Possible RCE and a TLS Client-Cert Bypass

NGINX Patches Five Flaws: Three Memory Bugs, a TLS Client-Cert Bypass and an HTTP/3 Smuggling Issue

On October 14, 2026, NGINX shipped 1.30.6 (stable) and 1.31.7 (mainline), closing five vulnerabilities. Three are memory-safety bugs that can crash a worker process and, in F5's assessment, could potentially lead to code execution. A fourth can, under narrow conditions, let a forged TLS session slip past client-certificate verification. The fifth lets an HTTP/3 client push extra bytes through to a backend. One of the affected code paths dates back to releases from 2005.

The good news: none of the five is triggered by a default install. Each one depends on a specific directive or combination of directives an administrator has turned on. The less good news: some of those directives are common — including one that NGINX's own documentation uses as an example.

What happened

CVEImpactYou're exposed if…AffectedStop-gap if you can't upgrade
CVE-2026-15176Heap overflow → worker crash, possible RCEA location uses alias, a rewrite changes the URI, and something reads $request_filename (e.g. return, set, if, add_header, log format)0.1.29 – 1.31.6Drop alias in that location, or stop referencing $request_filename
CVE-2026-93479Heap overflow → worker crash, possible RCEA regex map whose captures are used by root or log_format before the map's output variable1.30.0 – 1.30.5, 1.31.2 – 1.31.6Use named captures, scoped to the block containing the regex match
CVE-2026-97205Use-after-free → crash / memory corruption, possible RCEaio on and SSI pages using include virtual (in some configs)0.8.11 – 1.31.6Disable aio, or stop serving SSI
CVE-2026-95101Extra bytes injected into a proxied request; body can exceed client_max_body_sizeHTTP/3 with proxy_request_buffering on (the default)1.25.0 – 1.31.6proxy_request_buffering off
CVE-2026-97629Forged TLS session may bypass client-cert verificationssl_session_cache shared:… without ssl_session_ticket_key (auto key rotation)1.23.2 – 1.31.6Load ticket keys from a file, drop the shared cache, or set ssl_session_tickets off

Severity, as rated by the vendor: NGINX labels all five medium. F5's CVSS v4.0 scores are higher — 9.2 (Critical) for the three memory bugs, 8.3 for the TLS issue and 6.9 for HTTP/3. As of October 15, none was listed in CISA's KEV catalog and neither NGINX nor F5 reported in-the-wild exploitation.

The TLS ticket-key bug, briefly

Since 1.23.2 (October 2022), a shared session cache without an explicit key file makes NGINX generate and rotate session-ticket keys on its own. Each worker holds three key slots, but rotation only refreshed two — leaving the third holding uninitialized memory. A ticket that pointed at that slot could be validated against it. F5 stresses the forgery is non-deterministic and outside the attacker's control, so treat it as a real but hard-to-hit risk — not a reliable bypass. It echoes CVE-2025-23419, a session-reuse issue with the same outcome fixed in February 2025.

The regex map bug is a regression

CVE-2026-93479 lives in the same string-handling code NGINX patched in July for CVE-2026-42533. A July change let data spill into a reserved area, and a follow-up patch then sized the final string from that spilled length. Practical takeaway: a server patched in July — or one relying on July's named-captures workaround alone — is still in the affected range. Upgrading is the only complete fix.

The other three

  • alias + rewrite: in the window after a rewrite changes the URI but before the next location is picked, reading $request_filename with a location prefix longer than the new URI overflows a buffer during path mapping.
  • AIO + SSI: an unchecked 8-bit counter of pending async operations wraps at 256, so the request can be freed while operations still reference it. Parallel include virtual subrequests are the trigger.
  • HTTP/3: one parser field tracked both "bytes left to skip in an unknown frame" and "DATA bytes to forward". An unknown frame split across reads made the leftover count be forwarded as body — bypassing the size limit.

Why it matters

NGINX sits in front of a huge share of the web, often as a reverse proxy or TLS terminator for apps that never see the raw connection. Memory bugs in the worker process mean crash-level DoS at minimum. The TLS issue goes to the heart of mTLS deployments: if client certificates are your access control, a session-resumption weakness is an authorization problem, not just a crypto footnote. Context also matters: a rewrite-module overflow NGINX fixed in May 2026 (CVE-2026-42945) was reportedly exploited within days of disclosure. This is NGINX's eighth security release of 2026.

What to do

  1. Upgrade to 1.30.6 (stable) or 1.31.7 (mainline). Only those two branches receive fixes — 1.28 and older stay vulnerable. For distro packages, confirm your vendor has backported the patches; a version number alone won't tell you.
  2. NGINX Plus, Ingress Controller, Gateway Fabric, Instance Manager and NGINX App Protect WAF users: check F5's advisories. Several products had no fixed build as of October 15.
  3. Audit your running config with nginx -T and look for:
    • alias in a location alongside rewrite
    • regex map captures used by root or log_format
    • aio together with ssi
    • listen … quic (HTTP/3)
    • ssl_session_cache shared without ssl_session_ticket_key
  4. If you can't upgrade yet, apply the per-CVE stop-gaps in the table above — prioritising the TLS fix on any mTLS endpoint.
  5. Inventory your NGINX estate, including containers, ingress controllers and appliances that embed it; these are the places old versions hide.
  6. Also update njs to 1.0.2, released the same day to fix two medium-severity XML-handling flaws (CVE-2026-101025, CVE-2026-101019).

4Tify's external assessments flag outdated NGINX versions and risky TLS configurations as part of tech-stack CVE coverage.


Source: originally reported by The Hacker News; this article is 4Tify's independent summary and analysis.

PARTILHAR