Skip to main content

PHP CVE-2026-109618

| EUVDEUVD-2026-107260 CRITICAL
Use After Free (CWE-416)
2026-10-21 vendor:ubuntu
9.2
CVSS 4.0 · Vendor: vendor:ubuntu
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach PHP HTTP endpoint (AV:N)
  2. Delivery
    Send crafted multipart request
  3. Exploit
    Force OOM during early body parsing
  4. Execution
    Corrupt partially-initialized request memory (UAF)
  5. Persist
    Shutdown branches on invalid state
  6. Impact
    Execute code as web worker

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

No authentication and no user interaction are required (PR:N/UI:N): the flaw is reached during PHP's automatic request body parsing before any application code executes. The confirmed exploitation path requires the Apache mod_php SAPI, which unconditionally runs the request shutdown procedure even after request startup fails, and was validated against default PHP input and memory limits with normal prefork, multi-worker configurations. The concrete trigger is a multipart/form-data request abusing multipart parsing (e.g. a multipart body without a usable declared content length that still supplies decoded data, an unbounded number of per-part headers that cost far more memory in PHP than on the wire, or empty file controls with nested field names) to drive the worker to OOM while request memory is only partially initialized. A predictable finite per-request memory_limit is what makes the OOM controllable. LIMITING FACTORS: reliability depends on PHP build, extensions, frontend behavior and allocator layout (AC:H/AT:P), and additional workers plus unrelated traffic can raise the number of attempts needed though they do not remove the condition. PHP-FPM exits the child on startup failure, which prevents the application-independent startup path and makes complete exploitation unproven for FPM (startup-independent OOM paths remain theoretically susceptible); FrankenPHP is likely susceptible like mod_php, and LSAPI is modeled on FPM with only likely, unvalidated application-specific exploits. Deployments that do not use multipart form data can block such requests at the frontend before they reach PHP.

Impact

This is a genuine top-priority vulnerability, not a high-CVSS paper tiger. The GHSA advisory confirms unauthenticated remote code execution as the web worker account, validated over HTTP against Apache mod_php using default PHP input and memory limits and normal prefork multi-worker configurations - i.e. out-of-the-box deployments, not an exotic edge case. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H, score 9.2) agrees: network reach, no privileges, no user interaction, total confidentiality/integrity/availability impact. The AC:H and AT:P metrics reflect that exploit portability and reliability depend on the PHP build, extensions, frontend behavior and allocator layout, and that additional workers and unrelated traffic can increase the number of attempts required - the advisory grounds this explicitly rather than it being a race or timing assumption. A public exploit reference and a confirmed public PoC are present (vendor Ubuntu, wiz.io php2shell writeup, and a gist marked as exploit), and the vuln.today Decision label is act_now. The one conflicting signal is SSVC, which reports Exploitation: none and Automatable: no despite a confirmed public PoC and act_now label - treat the SSVC exploitation value as stale/conservative rather than as evidence of low risk, since the GHSA explicitly describes a confirmed working exploit. No EPSS score was provided, so probabilistic exploitation likelihood could not be weighed. The CVE is not listed in CISA KEV at time of analysis. SSVC Technical Impact: total is consistent with RCE. Net: for any internet-facing mod_php (and likely FrankenPHP) deployment this is an emergency-grade patch item.

Exploit ScenarioDerived

An unauthenticated attacker sends a crafted multipart/form-data HTTP request to an Apache mod_php site that, during automatic request body parsing before any application code runs, drives the process into an out-of-memory condition while request memory is only partially initialized; the request shutdown procedure then operates on this invalid use-after-free state, giving remote code execution as the web worker account. A public PoC/exploit reference exists (confirmed), and the php2shell writeup documents the technique, so weaponization effort is low, though reliability varies with build, extensions, frontend and allocator layout and may require multiple attempts under load.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
2 public PoCs + 1 unverified Patch available 5.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv5 – Oct 22, 2026

Unauthenticated remote code execution in PHP 8.2.x before 8.2.35, 8.3.x before 8.3.36, 8.4.x before 8.4.27, and 8.5.x before 8.5.12 arises when an attacker drives a worker into an out-of-memory condition while request memory is only partially initialized, leaving freed/reused structures that the request shutdown path then processes. Exploitation is confirmed practical against Apache mod_php with default input and memory limits in normal multi-worker prefork setups, and publicly available exploit code exists; the vendor and distros (Ubuntu USN-8948-1) have released fixed builds. With a 9.2 CVSS score, a public PoC, and an act_now priority decision, this warrants immediate patching, though reliability varies with build, extensions, frontend behavior and allocator layout, and no complete PHP-FPM exploit has been demonstrated.

Earlier versions of this analysis (4)
v4 Oct 22, 2026 - 08:28 wording corrected, advisory evidence added CVSS 9.2

Unauthenticated remote code execution in PHP affects the 8.2.x, 8.3.x, 8.4.x and 8.5.x branches (fixed in 8.2.35, 8.3.36, 8.4.27 and 8.5.12) and is driven by an out-of-memory condition during automatic multipart request body parsing, which leaves request memory in an invalid state that request shutdown later processes. Complete RCE was validated over HTTP against Apache mod_php with default PHP input and memory limits and normal prefork configurations, so no application cooperation is needed; FPM is susceptible by source analysis but no complete exploit has been demonstrated there, while FrankenPHP and LSAPI are assessed likely susceptible but unvalidated. Publicly available exploit code exists (confirmed), a gist and a vendor-style write-up are referenced, and the vulnerability is tracked under an act_now priority with total technical impact; reliability depends heavily on build, extensions, frontend behavior and allocator layout (AC:H/AT:P), and mitigated deployments using a finite PHP memory_limit remain the primary exposure.

v3 Oct 22, 2026 - 07:55 advisory evidence added CVSS 9.2

Unauthenticated remote code execution in PHP 8.2.x, 8.3.x, 8.4.x and 8.5.x stems from PHP using longjmp() to bail out of out-of-memory conditions, which can abandon request memory that is temporarily reachable but not fully initialized; the request-shutdown procedure may then read or branch on that invalid state, and multiple OOM strategies during automatic multipart/form-data parsing can reach it consistently. Complete RCE was validated over HTTP against Apache mod_php with default PHP input and memory limits and a normal prefork configuration with multiple workers, so this is a genuine high-priority issue rather than a high-CVSS-but-low-real-risk case, and it carries an act_now priority with publicly available exploit code (a PoC gist) even though there is no CISA KEV entry and SSVC records exploitation as none. Vendor patches are released in PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12, and the vendor states that updating is the only complete mitigation.

v2 Oct 21, 2026 - 14:28 cvss changed CVSS 9.2

Use-after-free in PHP (php-src) can be exploited by unauthenticated remote attackers to achieve code execution, with high confidentiality, integrity, and availability impact. The CVSS 4.0 vector requires attacker-uncontrolled conditions (AC:H and AT:P), so reliable exploitation depends on winning heap-reuse or timing conditions in the vulnerable code path; no public exploit was identified at time of analysis. Vendor patches are available through the php-src advisory and Ubuntu Security Notice USN-8948-1.

v1 Oct 21, 2026 - 13:39

Remote code execution is reported in an unspecified Ubuntu package, but the available intelligence does not identify the affected component, Ubuntu release, version range, or CVSS vector. Defenders cannot confirm the attack vector, required privileges, user interaction, or whether default configurations are exposed; these details must come from the Ubuntu Security Notice. No active exploitation or public exploit code is indicated in the provided data.

RemediationAI

Upgrade to the vendor-fixed releases: PHP 8.2.35, 8.3.36, 8.4.27 or 8.5.12 (upstream advisory GHSA-w8hw-w9fx-j79w; Ubuntu users should apply USN-8948-1). The vendor states that updating to a patched PHP release is the only complete mitigation, and that remediation advice from the related advisory GHSA-6wmf-4rv5-p3rp should also be followed. For installations that cannot update immediately, the primary configuration workaround is to set and enforce memory_limit=-1 administratively, removing the predictable finite per-request limit the confirmed OOM-based exploit depends on - but this is not complete, since an mmap() or other underlying allocation failure can still reach the vulnerable longjmp() path, and every PHP worker must be restarted with confirmation that no pool, directory or application setting restores a finite limit. Do not use RLIMIT_AS or RLIMIT_DATA, which cause mmap() to fail at the limit and re-enter the vulnerable path; a cgroup memory.max limit is only a partial substitute and may kill the master and all workers unless each worker has its own group. Keep post_max_size conservative, independently enforce decoded request size at the frontend, and bound max_input_nesting_level, the number of input variables, multipart parts, per-part headers and uploads; deployments that do not use multipart form data should block such requests at the frontend before they reach PHP.

Affected VersionsENISA

PHP 8.2.* <8.2.35
PHP 8.5.* <8.5.12
PHP 8.4.* <8.4.27
PHP 8.3.* <8.3.36

Affected Packages

euvd php_8_2 fix: 8.2.35
euvd php_8_3 fix: 8.3.36
euvd php_8_4 fix: 8.4.27
euvd php_8_5 fix: 8.5.12

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 4 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is a use-after-free class defect (CWE-416) in PHP's out-of-memory error handling. PHP historically uses longjmp() to abort request processing on OOM, but during request startup some request memory (notably multipart/form-data parsing state built by automatic body parsing) is temporarily reachable before it is fully initialized; if any allocation fails at that point, the early exit is not accounted for and the request memory is left invalid, so the request shutdown procedure may later read or branch on it - enabling memory corruption and code execution. The trigger is not related to the failed allocation itself. The advisory enumerates several OOM strategies that stay within apparent PHP limits: a multipart request with no usable declared content length that passes post_max_size and keeps supplying decoded body data, multipart parts carrying an unrestricted number of headers whose in-memory representation costs far more than the wire form, and empty file controls (exempt from max_file_uploads) with nested field names that multiply array work; application-specific large allocations can also reach OOM. Susceptibility is SAPI-dependent: Apache mod_php unconditionally invokes request shutdown even when request startup failed, which is why full RCE was validated there before any application code runs; PHP-FPM exits the child on startup failure, preventing the application-independent path (complete FPM exploitation unproven, though post-startup OOM paths remain theoretically susceptible); FrankenPHP is likely susceptible by analogy to mod_php, and LSAPI is modeled on FPM with only likely, unvalidated application-specific exploits. The fix replaces longjmp() with a delayed graceful soft OOM at the next VM safe point plus an immediate hard OOM via _exit() above a second, higher threshold.

Know when PHP gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vendor:ubuntu) PRIMARY 9.2 CRITICAL
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
ENISA EUVD CRITICAL
vuln.today AI 8.1 HIGH

Remote, unauthenticated, no interaction (AV:N/PR:N/UI:N); AC:H because reliability depends on build, extensions, frontend and allocator layout with possible multiple attempts; RCE in the worker process yields C:H/I:H/A:H, scope unchanged.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (vendor:ubuntu).

CVSS VectorVendor: vendor:ubuntu

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

6
Analysis Updated
Oct 22, 2026 - 08:28 vuln.today
v5 - analysis wording corrected, vendor advisory added to the analysis
Analysis Updated
Oct 22, 2026 - 08:28 vuln.today
v4 - analysis wording corrected, vendor advisory added to the analysis
Analysis Updated
Oct 22, 2026 - 07:55 vuln.today
v3 - vendor advisory added to the analysis
Analysis Updated
Oct 21, 2026 - 14:28 vuln.today
v2 - CVSS changed
CVSS changed
Oct 21, 2026 - 14:23 NVD
9.2 (CRITICAL)
CVE Published
Oct 21, 2026 - 00:00 cve.org
CRITICAL

DescriptionCVE.org

Remote code execution issue

Technical POC Analysis

The bug is a use-after-free (CWE-416) in php-src request memory handling.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

2 public PoC links from exploitdb, github, nuclei, plus 1 unverified

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

A critical unauthenticated remote code execution vulnerability in PHP versions 8.2 through 8.5 (such as 8.2.x before 8.2.35) allows attackers to compromise web servers running Apache mod_php under default configurations. This puts customer-facing applications and internal systems at risk of full takeover, data theft, and service disruption, demanding immediate leadership action to patch affected environments.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Model

5 threats: Elevation of Privilege, Denial of Service, Tampering and 2 more

5-step attack chain with trust boundaries and controls

Full threat model - attack chain, trust boundaries, controls per stage and evidence - is part of the Pro and Business plans.

Threat Intelligence Overview

Threat Score
6.6/10
Composite threat intelligence
EPSS Score
5.3%
Top 7% exploitable
Prevalence
Ubiquitous
PHP is one of the most widely deployed server-side languages on the web
EU Gov Alert
Listed
Top-tier national CERT alert
Threat Intel
13
1 sources
Social Media
600
Sightings
Data Quality
11 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CISA NCSC-NL CERT-FR ALE NEWS Fortinet POC (1) CIRCL 600 sightings Exploit-DB GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 5.3%
Patch available Yes
Active threat Yes
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

101
Low Medium High Critical
KEV: 0
EPSS: +5
CVSS: +46
PoC: +20
Weaponized: 0
Threat intel: +10
Gov advisory: +20

Attack Technique

Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Threat IntelligenceMISP

Sources: Security News RSS, NCSC-NL, CERT-FR, Fortinet PSIRT, AWS, CISA (public domain), Metasploit/Nuclei, CERT/CC

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy