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 / R01
R01: Remote code execution on internet-facing PHP servers
Because two flaws in the PHP engine let an unauthenticated request execute code on a default Apache mod_php setup, an attacker who reaches an unpatched server can take it over, resulting in data theft, defacement or a foothold in the network behind it.
Rating 15 high · Likelihood 3 Possible · Impact 5 Severe · Kind Security · Acceptance not recorded
Basis. Impact: unauthenticated code execution, confirmed on mod_php. Likelihood: probing confirmed, attempts reported, no confirmed compromise; attack complexity high.
The path
Who carries it
One risk, assigned to every stakeholder that carries part of it, with the part each plays.
| Stakeholder | Part | Why | Its register |
|---|---|---|---|
| Organisations running PHP | owner | Only the organisation running the server can update it or take it offline. | 26 risks |
| People who use PHP services | bearer | Their data and their services are what an attacker reaches. | 5 risks |
| The PHP project | treater | Ships the fix in 8.5.12, 8.4.27, 8.3.36 and 8.2.35. | 11 risks |
| Hosting and cloud providers | treater | Patch the runtime for every customer on a managed platform. | 4 risks |
| Edge, WAF and detection vendors | treater | Filters and detection between the attacker and the server. | 8 risks |
| Agencies and CERTs | informer | Their advisories set how urgently boards act. | 11 risks |
The risks this one is made of
What it arises from
- The allocator's longjmp-based bailout on out-of-memory. An out-of-memory error unwinds by longjmp and can leave request memory in a state that cleanup later reads.
- Request globals that survive a failed request. State from a request that failed is still there when the next one starts.
The evidence
Treatments
| Treatment | Status | Where |
|---|---|---|
| Update to 8.5.12, 8.4.27, 8.3.36 or 8.2.35 | in place | Patching: which versions get a fix, and from whom |
| Take the system offline where an update is not possible (CISA, NSA) | in place | Impact: taken offline versus compromised |
| Edge filters while the update is rolled out | partial | Detection and defence: what blocks php2shell and what shows it |
The standards that govern it
| Framework | Control | What it asks | Family |
|---|---|---|---|
| ISO/IEC 27001 | A.8.8 | Management of technical vulnerabilities | Management-system standards |
| NIST CSF 2.0 | ID.RA-01 | Vulnerabilities in assets are identified, validated and recorded | Frameworks and control catalogues |
| NIST SP 800-53 | SI-2 | Flaw remediation | Frameworks and control catalogues |
| CIS Controls | 7.7 | Remediate detected vulnerabilities | Frameworks and control catalogues |
| MITRE ATT&CK | T1190 | Exploit public-facing application | Practice and technique |
| OWASP Top 10s | A06:2021 | Vulnerable and outdated components | Practice and technique |
| NIS2 | Art.21(2)(e) | Security in acquisition, development and maintenance, including vulnerability handling and disclosure | Law and regulation |
The stories that tell it
- Where php2shell stands: many sites dark, millions of attempts, no confirmed breach
- Patch at the speed of Metasploit: where php2shell sits on the weaponisation ladder, and the attacks that come second and third
On this site: The two flaws: CVE-2026-109618 and CVE-2026-109619 · The fix, mapped to the code · If you run PHP: the steps, in order, with their sources