Critical 9.8 Actively Exploited

PHP OOM handler RCE exploited in the wild (CVE-2026-109618) [PoC]

CVE-2026-109618

By Yazoul AI · automated

CVE-2026-109618: PHP OOM longjmp() handling lets unauthenticated attackers achieve RCE (CVSS 9.8), actively exploited in the wild. Update to a patched PHP release now.

Affected: Php Siemens Ruggedcom Ape1808 Firmware Siemens Ruggedcom Ape1808 Paloaltonetworks Pan-Os Paloaltonetworks Panorama M-200

Actively exploited in the wild - CVE-2026-109618 is a critical remote code execution flaw in PHP’s out-of-memory (OOM) error handling that grants unauthenticated attackers code execution on affected servers. Patched releases are available; treat any internet-facing PHP deployment as exposed until updated.

Overview

PHP handles memory exhaustion by calling longjmp() to unwind out of the current execution context and abort the request. Some internal code paths do not correctly account for this jump. When an OOM occurs at the wrong moment, request-scoped memory can be left uninitialized before a subsequent allocation, and the request cleanup routine may later read or branch on that stale memory. Attackers can drive several different OOM strategies to trigger the condition reliably.

The result is memory corruption during request teardown that can be shaped into remote code execution. Because the flaw sits in core request handling, it applies broadly: PHP-FPM pools, mod_php deployments, and any application that surfaces PHP to untrusted input. No authentication or user interaction is required, and the attack is delivered over the network with low complexity, which is why this scores 9.8 and why exploit activity is already confirmed.

Impact

A successful attack lets an unauthenticated remote attacker run arbitrary code as the web server user and pivot from there. Given how common PHP is across CMS platforms, APIs, and shared hosting, the blast radius is large. An attacker who lands code execution can read application secrets and database credentials, tamper with content, and move laterally inside the hosting environment. Any multi-tenant hosting provider running a vulnerable PHP build should assume that tenant isolation is at risk. Data breach reports are available at breach reports and ongoing coverage at security news.

Remediation and Mitigation

Update PHP to the latest patched release for your branch as a first priority, and do not rely on a single version number - check the vendor’s release notes for the fixed builds across every maintained line. If you cannot patch immediately:

  • Reduce OOM trigger surface by capping memory_limit conservatively and rejecting oversized request bodies at the reverse proxy.
  • Put PHP-FPM pools behind strict per-pool resource limits so a single triggered OOM cannot cascade.
  • Restrict direct internet exposure of PHP error output and diagnostic endpoints.
  • Hunt for anomalous request patterns that induce repeated memory exhaustion, which is a strong precursor signal for this exploit.

Confirm your package manager or container base image actually ships the patched build; many images lag upstream releases by weeks.

Security Insight

This bug is a textbook example of why control-flow primitives like longjmp() are a liability in garbage-collected runtimes: they skip the normal unwinding that keeps memory state consistent. PHP’s OOM handler has been a source of subtle defects for years, and the fact that multiple trigger strategies produce the same corruption suggests the faulty pattern exists in more than one code path rather than a single missed check. For defenders, the takeaway is that core interpreter flaws defeat the perimeter entirely - the WAF does not see a malicious payload, only a request that runs out of memory.

Further Reading

Share:

Never miss a critical vulnerability

Get real-time security alerts delivered to your preferred platform.

Exploit-DB Entries

Curated public exploit code — authorized use only

The entries below are human-reviewed exploit code hosted on Exploit-DB by Offensive Security. Lower volume than random GitHub PoCs but higher signal: every entry is curated, many are tagged "verified" by the maintainers. Treat as production-ready exploit code.

Authorized use only. Run only against systems you own or have explicit written permission to test. Using exploit code against systems you do not own is illegal in most jurisdictions and violates Yazoul's terms of use.

EDB-ID Title Status
EDB-52704

PHP2Shell (CVE-2026-109618) - PHP core versions after v5.4 - RCE

verified

1 Exploit-DB entry indexed for this CVE. Source: Exploit-DB.

Public PoC References

Unverified third-party code

These repositories are publicly listed on GitHub and have not been audited by Yazoul Security. They may contain malware, backdoors, destructive payloads, or operational security risks (telemetry, exfiltration). Treat them as hostile binaries. Inspect source before execution. Run only in isolated, disposable lab environments (offline VM, no credentials, no production data).

Authorized use only. This information is provided for defensive research, detection engineering, and patch validation. Using exploit code against systems you do not own or do not have explicit written permission to test is illegal in most jurisdictions and violates Yazoul's terms of use.

Repository Stars
ikow/php2shell-poc

CVE-2026-109618/109619 — 5 RCE chains + detection rules (Suricata, Sigma, ModSecurity). PHP session.upload_progress pre-auth exploit research.

★ 1828
eness/php2shell-CVE-2026-109618-CVE-2026-109619-PoC

Proof-of-Concept (PoC) exploit for php2shell (CVE-2026-109618 / CVE-2026-109619), demonstrating remote code execution in vulnerable PHP environments. For security research and educational purposes onl

★ 1017
JoasASantos/php2shell-exploit

PHP2Shell exploit framework — CVE-2026-109618/619 PHP session.upload_progress UAF to RCE

★ 179
devploit/php2shell

PHP2Shell: version-aware research toolkit for CVE-2026-109618 / CVE-2026-109619 — pre-auth RCE in PHP session.upload_progress (mod_php). Build profiles, labs, heap calibration and detection guidance f

★ 169
HOSTED-POWER/php_uploadprogress_guard

Protects an unpatched PHP against php2shell (CVE-2026-109618 / CVE-2026-109619): a small extension that mirrors the official fix component by component and steps aside once the engine carries it. PHP

★ 160

Showing 5 of 457 known references. Source: nomi-sec/PoC-in-GitHub.

Nuclei Detection Templates

Detection template available — your exposure is being scanned

The templates below are YAML signatures for the Nuclei scanner from ProjectDiscovery. They are not exploit code — they are detection rules that confirm whether a target is vulnerable. The presence of a Nuclei template means every bug bounty hunter, AppSec team, red team, and reconnaissance pipeline on the public internet is actively probing for this CVE.

Assume your exposed instances have already been touched. Patch immediately even if no exploitation is observed yet — fingerprinting precedes exploitation by days at most.

Template Source
CVE-2026-109618.yaml View YAML

1 Nuclei template indexed for this CVE. Source: projectdiscovery/nuclei-templates.

Related Advisories

Related Across Yazoul

Other Php Vulnerabilities

View all Php vulnerabilities →

Never Miss a Critical Alert

CVE advisories, breach reports, and threat intel — delivered daily to your inbox.