# Source: PHP2Shell Vulnerability: How the PHP Emergency Unfolded

> Research: collected from outside sources and what this site derives from them; every fact links to a saved copy of its source.

safestate.com: what it says, the claims and events that cite it, and the hashes of every captured file.

Source · news · secondary · captured

# PHP2Shell Vulnerability: How the PHP Emergency Unfolded

**safestate.com** · [https://www.safestate.com/post/php2shell-vulnerability-how-the-php-emergency-unfolded](https://www.safestate.com/post/php2shell-vulnerability-how-the-php-emergency-unfolded) · published not stated in the capture · added by `curator@php.newsroom` · slug `safestate-post-php2shell-vulnerability-how-the-php`

Promoted from the source watch (pack copy 7r83qic5), snapshot 20261031T071303Z, queue priority 2 (mechanical selection by researcher@php.newsroom, read by the curator). A blog post by a listed Swedish security firm (Safestate) retelling how the PHP emergency unfolded. It says the maintainers shipped out-of-cycle patch...

## What it says, as the collector read it

#### PHP2Shell Vulnerability: How the PHP Emergency Unfolded

Promoted by curator@php.newsroom from the source watch (vault `oq9gflln`, read from its pack copy `7r83qic5`), page `se/news/safestate/post-php2shell-vulnerability-how-the-php-emergency-unfolded`, snapshot `20261031T071303Z`. Copied byte for byte; every file's sha256 is in `captures/20261031T071303Z/provenance.json` and was re-checked against the watch's own hashes.

#### What the page says

_Curator's reading of the capture._

A blog post by a listed Swedish security firm (Safestate) retelling how the PHP emergency unfolded. It says the maintainers shipped out-of-cycle patches on 21 October, a day early, after an anonymous forum post leaked the details; that the flaws trace to August, when AI models found a defect said to have sat in the engine for 14 years; that Calif found multiple routes to remote code execution on 1 August and reported the first bug on 11 August, OpenAI's team found a more complete version in September and Wiz reached the problem independently around 24 August; that on 20 October a now-deleted Hacker News post published the CVE numbers, claimed a perfect 10.0 score and named the date, watchTowr confirmed within hours that the bugs were real and said it had reproduced one, and PHP moved the release to 21 October at 14:00 UTC; that Cloudflare deployed managed firewall rules at 03:02 UTC on 21 October, which the post says was about nine hours before disclosure; that Amazon detected an exploit attempt against its honeypots on 17 October, four days before anyone went public, from an IP tied to a commercial anonymisation service, and identified multiple proof-of-concept exploits about 12 hours before the scheduled disclosure; that about 79% of over 5.1 million PHP hosts run unsupported versions; and what to patch, hunt for from 17 October, and rotate. It closes that the coordinated response worked better than most, until one anonymous post cost defenders a day.

> One anonymous post cost defenders a full day, and someone was probing for the flaw four days before that post appeared.

#### Why it is here

From the promotion queue (`index/promote.json`, priority 2): Mentions CVE-2026-109618/109619 or php2shell: "PHP2Shell Vulnerability: How the PHP Emergency Unfolded". Selected mechanically, not read by a person. Text also matches compromise/breach terms: check for a named organisation or cause.

#### Capture notes

Language `en`. The capture shows no publication date. A vendor's blog post, secondhand on others' reports; it describes how the flaws work and gives temporary configuration settings, none of which is copied here, and names a PHP core developer, left out. Nothing in the page addresses an AI or hides text from a reader.

## Claims that cite it

No claim cites this source yet.

## Events that cite it

No timeline event cites this source yet.

## The bytes
capture 20261031T071303Z · HTTP 200 · https://www.safestate.com/post/php2shell-vulnerability-how-the-php-emergency-unfolded- `headers.json` d1d898b0fc455d2487387f31800a0102e6d91443adfc91518df4a8ae5bc8f860 1,490 bytes
- `page.html` 155b6eb56eec7215599ea73b24a0a4080983331b0ff3ed0fbcd9f0d5b4b7b879 38,467 bytes
- `provenance.json` 9fbeaf127e8c86002aac5d299711d01082c86bebabce6af4941832b95445b1a4 1,740 bytes
- `rendered.html` 02647b0a699ce4f00300c459fff881c781b4b565293740d16a2403ffe8a5944f 39,976 bytes
- `screenshot.jpg` 3f5bf70cdbede4e98458413794cee9874b4dc461e9208a6b7709189b1a058992 729,191 bytes
- `text.txt` ef2a6a3f12968a837b2007a683f80c337d5775e2883775b1e7ffee308a27e65d 8,755 bytes

The captured files are held privately in the evidence vault and are not republished; the hashes above are what the vault recorded at capture time. [Every source →](../index.html)


---
site v0.22.56 · data as of 2026-10-31T09:42Z · vault commit b79970cfb056 · https://refs.php.oct.2026.newsroom.sgit.ai/sources/safestate-post-php2shell-vulnerability-how-the-php/index.html
