Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
nginx-cve-2026-97629 — Proof-of-concept exploit, root-cause analysis and one-line patch for CVE-2026-97629, an nginx TLS session-ticket forgery that bypasses client-certificate (mTLS) authentication. | Kitploit
Tools/GitHubGitHub/phinode-labs/nginx-cve-2026-97629
Vulnerability AnalysisExploitationWeb SecurityCryptographyAuthenticationPapers & Research
GitHubphinode-labs/nginx-cve-2026-97629

nginx-cve-2026-97629

Proof-of-concept exploit, root-cause analysis and one-line patch for CVE-2026-97629, an nginx TLS session-ticket forgery that bypasses client-certificate (mTLS) authentication.

View RepositoryWebsite
16 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-97629 — nginx TLS session-ticket forgery (client-certificate bypass)

One line of C. One forged TLS session. Found, proved end to end, and coordinated to a fix by PhiNode Labs.

CVE CVSS CWE-908 Fixed

A proof-of-concept exploit, the root-cause analysis, the one-line patch and the reproduction evidence for CVE-2026-97629, a TLS session-ticket forgery in nginx that can bypass client-certificate (mutual-TLS) authentication. Disclosed to F5 under coordinated disclosure and credited to PhiNode Labs.

Read the full write-up: https://phinode.io/nginx-cve-2026-97629.html

"F5 acknowledges PhiNode Labs for bringing this issue to our attention and following the highest standards of coordinated disclosure." — F5 Security Advisory K000162606

At a glance

CVECVE-2026-97629
AdvisoryF5 K000162606 · GHSA-862p-pr69-37gq
SeverityCVSS 3.1 6.5 / CVSS 4.0 8.3 (F5). Up to 10.0 on mutual-TLS deployments
WeaknessCWE-908 — use of uninitialized resource
Componentngx_http_ssl_module — ngx_ssl_rotate_ticket_keys()
Affectednginx 1.23.2 – 1.31.6, NGINX Plus up to R37 (37.0.5), and F5 products built on nginx
Fixednginx 1.31.7 and 1.30.6, NGINX Plus 37.0.5.1 / 37.1.0.1
CreditPhiNode Labs — [email protected]

The bug

To resume TLS connections quickly, nginx seals a session ticket with a rotating key and keeps three such keys per worker: current, previous, next. During rotation, ngx_ssl_rotate_ticket_keys() copied only two of the three slots into each worker; the third was never written after startup. On a default Linux build that memory is all zeros — the same, predictable value on every worker in every default deployment.

The decrypt callback scans all three slots. A client can submit a forged ticket whose 16-byte key name is all zeros, match the untouched third slot, and have nginx unseal it with all-zero AES and HMAC keys that anyone can guess. From there an attacker forges a valid session with keys they choose and resumes an encrypted connection without completing a real handshake. Where a server trusts a client certificate to decide who gets in, that check is bypassed.

The fix is a single character:

  ngx_memcpy(keys->elts, cache->ticket_keys,
-            2 * sizeof(ngx_ssl_ticket_key_t));
+            3 * sizeof(ngx_ssl_ticket_key_t));

See patch/ for the ready-to-apply diff.

Why it matters

nginx serves roughly a third of all websites. The impact F5 credits — bypassing client-certificate verification — lands hardest on mutual TLS: open banking (PSD2 / FAPI), healthcare data exchange, 5G core network functions, Kubernetes ingress, zero-trust and device fleets, where a certificate is the whole access decision. On those deployments the forgery is a full client-authentication bypass, the maximum-severity reading.

Reproduce it

Everything is local, on a loopback listener with a throwaway self-signed certificate. See poc/ for the exploit and evidence/ for captured output: nginx accepting the all-zero key, the abbreviated handshake, and a full read/write over the forged session (decrypted HTTP 404).

cd poc
python3 make_forged_session.py   # patch the session_id_context
python3 forge_ticket.py          # -> VERDICT: TICKET ACCEPTED
python3 forge_ticket_full.py     # -> full read/write over the forged session

Mitigation

  1. Upgrade to nginx 1.30.6 / 1.31.7, NGINX Plus 37.0.5.1 / 37.1.0.1, or your vendor's patched build.
  2. Until you can: ssl_session_tickets off;
  3. Or configure explicit ssl_session_ticket_key files that you rotate yourself.

A server is only exposed if all hold: a vulnerable version, a ssl_session_cache shared:…, tickets on with no key file, and certificates that decide access.

Disclosure timeline

DateEvent
Jun 2026PhiNode Labs identifies the slot mismatch and proves it end to end
Aug 2026Reported to F5 SIRT; forwarded to NGINX Product Engineering
Sep 2026NGINX PE classifies it as a vulnerability
Oct 12, 2026CVE-2026-97629 assigned (F5 NPS-179)
Oct 14, 2026F5 publishes K000162606; fixes ship in nginx 1.31.7 / 1.30.6

Responsible disclosure

This proof of concept is published after the fix shipped and with F5's coordinated release, for defenders to verify their own servers. Do not use it against systems you do not own or operate.

About PhiNode Labs

PhiNode Labs is an applied program-analysis research lab. We find the defects scanners and language models walk past — no injected string, no obvious bad function, just a size that should have been three and was two — by reasoning about what a program's memory actually holds at runtime. No claim without a witness.

  • Website: https://phinode.io
  • Research & disclosures: https://phinode.io/research.html
  • This advisory, in full: https://phinode.io/nginx-cve-2026-97629.html
  • Security contact: [email protected] (security.txt)

Keywords: CVE-2026-97629, nginx, TLS session ticket, session ticket forgery, session resumption, mutual TLS, mTLS, client certificate bypass, ngx_http_ssl_module, ngx_ssl_rotate_ticket_keys, F5, NGINX Plus, proof of concept, PoC, exploit, CWE-908, PhiNode Labs, program analysis.

Download Tool