PHP OOM handler RCE exploited in the wild (CVE-2026-109618) [PoC]
CVE-2026-109618
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.
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_limitconservatively 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
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
PHP has various global state that temporarily points into request memory. In some scenarios, global state may not be correctly reset, or may be repopulated after being reset. The global state may then...
Winter is a free, open-source content management system (CMS) based on the Laravel PHP framework. Prior to 1.0.477, 1.1.12, and 1.2.12, Winter CMS allowed authenticated backend users to escalate their...
WWBN AVideo is an open source video platform. Prior to version 24.0, an unauthenticated SQL Injection vulnerability exists in AVideo within the objects/videos.json.php and objects/video.php components...
OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 7.0.4, the `disposeDocument()` method in `EtherFaxActions.php` allows authenti...
Related Across Yazoul
Other Php Vulnerabilities
PHP has various global state that temporarily points into request memory. In some scenarios, global state may not be correctly reset, or may be repopulated after being reset. The global state may then...
Jettweb PHP Hazir Rent A Car Sitesi Scripti V2 contains an SQL injection vulnerability that allows unauthenticated attackers to manipulate database queries by injecting SQL code through the arac_kateg...
Jettweb Php Hazir Ilan Sitesi Scripti V2 contains an SQL injection vulnerability that allows unauthenticated attackers to manipulate database queries by injecting SQL code through the 'kat' parameter....
Jettweb PHP Hazir Haber Sitesi Scripti V2 contains an authentication bypass vulnerability in the administration panel that allows unauthenticated attackers to gain administrative access by exploiting ...