← All field notes

From React2Shell to PHP2Shell and GitLab: October 2026's Wave of Critical RCE Attacks

PHP, Node.js and GitLab all shipped emergency RCE patches in October 2026, and PHP2Shell and a GitLab file-read flaw are already exploited in the wild. Here is what happened, how to check your exposure and what to patch today.

Dark cover image with the headline "The 2Shell wave is here." and labels for PHP2Shell, HTTP2Shell, GitLab RCE and React2Shell, beside a terminal window showing a remote shell being obtained, with the Turf Dev logo at the bottom.

In October 2026, PHP, Node.js and GitLab all shipped emergency patches for critical remote code execution bugs. Public exploit code appeared within about a day for several of them, and PHP2Shell and a GitLab file-read flaw are already confirmed exploited in the wild. If you run PHP, Node.js, Python services or self-managed GitLab in production, patch this week.

The “2Shell” naming started with React2Shell in December 2025. The pattern has repeated since: a bug deep in a runtime, library or platform, reachable from the network, ending in a shell on your server. Here is what happened, how to tell if you are exposed, and what to do today.

What happened

Four families of bugs, one pattern. Each is critical, reachable over the network, and rated 9.2 or higher. Here is where each stands as of 27 October 2026.

PHP2Shell — CVE-2026-109618, CVE-2026-109619

  • Affects: PHP request handling in mod_php, PHP-FPM, php-cgi, FrankenPHP and LiteSpeed
  • Severity: CVSS 9.2 (v4)
  • Fixed in: PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35
  • Status: Exploited in the wild; RCE confirmed on honeypots (Qualys)

Node2Shell / HTTP2Shell — CVE-2026-111497

  • Affects: Google’s Brotli decoder (1.0.3 to 1.2.0), bundled in Node.js, Bun and Python’s Brotli packages
  • Severity: CVSS 9.2 (v4)
  • Fixed in: Node.js 22.23.4, 24.22.1, 26.12.1; Bun 1.4.4; Python Brotli 1.2.1 and brotlicffi 1.2.1.0
  • Status: Public PoCs; no confirmed in-the-wild RCE yet (Akamai, Strobes)

GitLab — four critical flaws in six weeks

  • CVE-2026-85706 (CVSS 10.0): Unauthenticated path traversal in the repository commits API lets attackers read any file on the server, including secrets. Fixed in 19.3.2, 19.2.6 and 19.1.8. Exploited in the wild and in CISA’s KEV catalog (InfoQ).
  • CVE-2026-90970 (CVSS 9.9): Command execution in the self-hosted AI Gateway via crafted Duo Agent Platform flows. Fixed in 19.2.4, 19.3.2 and 19.4.1 (The Hacker News).
  • CVE-2026-97229 (CVSS 10.0): A crafted regex in .gitlab-ci.yml triggers an integer overflow and code execution. Fixed in 19.2.8, 19.3.5 and 19.4.2 (Help Net Security).
  • CVE-2026-110264 (CVSS 10.0): An integer overflow in GitLab’s regular expression compiler, present back to GitLab 7.0, allows unauthenticated RCE. Fixed in 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 and 19.5.1 (GBHackers).

GitLab.com and GitLab Dedicated are already patched. Self-managed instances are the ones at risk.

React2Shell — CVE-2025-55182

  • Affects: React Server Components (Next.js, React Router, Waku and others)
  • Severity: CVSS 10.0
  • Fixed in: React 19.0.1, 19.1.2, 19.2.1
  • Status: In CISA’s Known Exploited Vulnerabilities catalog since 5 Dec 2025 (Rapid7)

The timeline moved fast:

  • 11 Sep: GitLab patched CVE-2026-85706; watchTowr saw in-the-wild probes within hours of disclosure.
  • 2 Oct: GitLab disclosed the AI Gateway flaw, CVE-2026-90970.
  • 12 Oct: GitLab patched the CI/CD regex flaw, CVE-2026-97229.
  • 17 Oct: Amazon Threat Intelligence saw attackers probing the PHP flaws, about four days before patches shipped (BleepingComputer).
  • 21 Oct: PHP, Node.js and GitLab all shipped critical fixes on the same day. The first public Node2Shell repo appeared about five hours after the Node.js release (Sysdig).
  • 22–23 Oct: Bun and Python’s Brotli packages shipped fixes, and the bug was renamed HTTP2Shell. The PHP Foundation warned of a third PHP RCE, CVE-2026-115560 (The Hacker News).
  • 24 Oct: A researcher’s honeypot recorded what appears to be the first successful in-the-wild PHP2Shell RCE, on Apache mod_php running PHP 8.4.26.

1 of 2 sections shown

Anees Khan

Co-Founder & CTO at Turf Dev, focused on Kubernetes, platform engineering, cloud infrastructure, and production reliability. I write about real-world infrastructure problems, how we investigate them, and the engineering approaches used to solve them.

Meet Turf Dev ↗

Keep exploring

More from the field.

All articles ↗

Platform Mandate

Request Architecture Review

Review platform posture, reliability constraints, and cost governance priorities with an infrastructure engineering team.

Request Architecture Review