Research collected from outside sources and what this site derives from them; every fact links to a saved copy of its source Research or story?

Risks / R02 The coordinated disclosure broke before the fix was ready / R02-1

R02-1: The CVE IDs and the proof-of-concept video circulated before release

Because the CVE IDs circulated from an anonymous post and a proof-of-concept video was published by mistake, attackers knew the target and saw it work before any fix existed, resulting in scanning that began ahead of the release.

Rating 20 critical · Likelihood 5 Happening · Impact 4 Major · Kind Disclosure process · Acceptance not recorded

Basis. Reported by the PHP Foundation and the security team's own account.

The path

Told inWhere php2shell standsWhere php2shell stan…php2shell in perspectivephp2shell in perspec…Acted on bySecurity lead and AppSecSecurity lead and Ap…HistorianHistorianStory site agentStory site agentCarried byCalif (source)Calif (source)The PHP security team (owner)The PHP security tea…Edge, WAF and detection vendors (treater)Edge, WAF and detect…RiskR02-1 The CVE IDs and the proof-of-concept video circulated before releaseR02-1 The CVE IDs an…Arises fromOne embargo shared by many partiesOne embargo shared b…VulnerabilityCVE-2026-109618CVE-2026-109618CVE-2026-109619CVE-2026-109619Fixed byA soft memory limit that no longer jumpsA soft memory limit …A hard limit that ends the process cleanlyA hard limit that en…An orderly unwind at the next safe pointAn orderly unwind at…Allocations that may fail instead of abortAllocations that may…Request globals reset so nothing survives a failureRequest globals rese…Bounded, deduplicated request parsingBounded, deduplicate…CodeZend/zend_alloc.cZend/zend_alloc.cZend/zend_execute_API.cZend/zend_execute_AP…Zend/zend_hash.cZend/zend_hash.cZend/zend_string.cZend/zend_string.cZend/zend_types.hZend/zend_types.hext/session/session.cext/session/session.…main/SAPI.cmain/SAPI.cmain/main.cmain/main.cmain/rfc1867.cmain/rfc1867.c
The risk sits in the middle. To its left, the stories that tell it, the roles and team members that act on it, and every stakeholder that carries part of it. To its right, what it arises from, the vulnerability behind that, the part of the fix that addresses it and the code the fix changed. Every line is an edge in the graph; every node is a link; hover for the full name. Vulnerabilities, stories and team members include those of the risk this one is part of; roles include those of the risks above and beneath it.

Who carries it

One risk, assigned to every stakeholder that carries part of it, with the part each plays.

StakeholderPartWhyIts register
CalifsourcePublished the video, according to the Foundation.1 risk
The PHP security teamownerDecides how the embargo responds.7 risks
Edge, WAF and detection vendorstreaterShipped rules within hours of the leak.8 risks

What it arises from

The evidence

Treatments

TreatmentStatusWhere
Edge rules live before disclosurepartialDetection and defence: what blocks php2shell and what shows it

The standards that govern it

FrameworkControlWhat it asksFamily
ISO/IEC 29147 and 3011129147:coordinationCoordinating disclosure with other vendors and parties under embargoPractice and technique
NIST CSF 2.0ID.RA-08Processes for receiving, analysing and responding to vulnerability disclosures are establishedFrameworks and control catalogues

The stories that tell it

On this site: How the coordinated disclosure broke