Events Join us at the AWS Summit in Dubai on 30th September
Read

NGINX Patches Five Flaws at Once. Two Had Been Hiding Since 2009.

NGINX patched 5 vulnerabilities. Three memory bugs can crash servers or run code, and two date back to 2009 code. Update to 1.31.7 or 1.30.6.

The web server running a huge slice of the internet just shipped a quiet but urgent update. NGINX fixed five security flaws in a single release. Two of them had sat in the code since 2009.

What Happened?

On October 14, the NGINX team released versions 1.31.7 and 1.30.6. Both branches carry the same five fixes. Three are memory bugs inside the worker process. One is a heap overflow that fires when alias and rewrite rules remap a URL to a file path. Another overflow occurs when NGINX evaluates variables for things like the document root and the access log. The third is a use-after-free error in asynchronous file reads. Each one can crash a server. In the worst case, each could let an attacker run code. The other two are quieter but still serious. The same release also patched two smaller flaws in njs, the NGINX scripting tool.

The Five Flaws

NGINX · Security Advisory · Oct 2026

Five flaws, one patch. Two sat in the code since 2009.

NGINX 1.31.7 and 1.30.6 close five bugs at once. Three corrupt worker memory and can crash a server or run code. Two touch protocol and trust.

CVE-2026-15176
Heap overflow
Fires when alias meets a rewrite that remaps a URL to a file path. Code from 2009.
Memory
CVE-2026-97205
Use after free
Hits async file reads on SSI pages. Also dates back to 2009 era code.
Memory
CVE-2026-93479
Overflow in variable eval
Triggers while building the document root and request logs in newer builds.
Memory
CVE-2026-95101
HTTP/3 request injection
Stray frame bytes read as body. Can slip past size limits or reach a backend.
Protocol
CVE-2026-97629
TLS session forgery
A forged session ticket can skip a client certificate check.
Trust
Patched in
1.31.7 · mainline
1.30.6 · stable
Both branches ship the same five fixes.

NGINX rates all five medium. Outside scorers put the three memory bugs much higher. The trigger is in your config, so patch fast and check what you actually run.

  • CVE-2026-15176: the alias and rewrite overflow. Code dates to 2009.
  • CVE-2026-97205: the use-after-free in async file reads. Also old code.
  • CVE-2026-93479: the variable evaluation overflow in newer builds.
  • CVE-2026-95101: an HTTP/3 parsing bug that can smuggle body data into a backend or slip past size limits.
  • CVE-2026-97629: a TLS session ticket flaw that can forge a session and skip a client certificate check.

The Impact

NGINX rates all five as medium. The label undersells it. Outside scorers rated the three memory bugs far higher, which is reason enough not to wait on a badge. These flaws only fire under specific setups, so two servers on the same version can carry very different risk. A crash is the floor here, not the ceiling. History backs the urgency. Earlier in 2026, a separate NGINX rewrite flaw was exploited within days of going public.

How to Avoid This

  • Update to 1.31.7 or 1.30.6 right away.
  • Run nginx -T and read your live config.
  • Flag any use of alias, rewrite, SSI, and HTTP/3.
  • Rotate your TLS session ticket keys.
  • Retest after you patch.

Indicators of Compromise

No published indicators of compromise exist for these flaws. CISA’s exploited vulnerabilities catalog lists none, and no attacks have been reported in the wild. So there is nothing to feed a threat hunt by hash or IP. Hunt by configuration instead. Run nginx -T, look for the risky directives above, and watch worker processes for restarts or crashes you cannot explain.

Five Flaws. Not All of Them Are Yours.

A CVE list tells you what got fixed. It does not tell you which of your servers an attacker could actually reach. That gap is where patch panic and wasted hours live.

  • A Red Teammate tests which flaws are truly exploitable in your setup, not just present in your version.
  • Findings route to the AppSec and Cloud teammates for governed fixes, with your team approving the consequential ones.
  • Exposure gets scored by what can be used against you, not by a generic severity label.
  • Log every patch and retest so you can prove the risk is closed.
  • You start with one teammate and keep authority over every action.