🚀 Launch day!
Introducing DailyMedToday.com
A daily Christian meditation platform to help you connect with Scripture and grow in faith.
🧵 Thread on what I've built and why...
I was given a "free for life" WP Multisite install by @wpengine back in something like 2012. It's still live? But I haven't used it in maybe a decade. And I have no way to log in to nuke it or even submit a support ticket to have it spun down.
I just forever get emails...
That 9 of the top 10 "biggest heists in history" are all crypto related is as telling as it is entertaining.
Eric Mann retweeted
This accurate life lesson has been and will always be live in my mind, rent free.
youtube.com/watch?v=mr2Jdp4f…
#StarTrek #PatrickStewart #STTNG
Eric Mann retweeted
Thank you Patrick Stewart for the years of exploring the final frontier and "make it so". I'm not really one for nostalgia, but these little goose bumps are telling me to watch Next Generation tonight.
Eric Mann retweeted
I asked Claude to migrate a mid-sized website from PHP 5.6 to 8.2, including an E2E test suite in Playwright to verify nothing broke, and across several major framework versions too, and it did it literally overnight.
There’s no excuse to run outdated PHP versions in 2026.
I'd seen a few scripts and Gists going around to help identify (potential) IOCs for php2shell. Most of them were raw bash, required sudo, and delivered with "trust me bro" levels of documentation.
That's ... not super helpful.
So I leveraged a few to produce my own.
It's on GitHub and documented, with a demo, so you can review everything rather than just blindly trusting my script with sudo on your machines.
github.com/ericmann/php2shel…
If you find anything (or you know of an IOC it missed) please file an issue.
Eric Mann retweeted
If all the govs shutting down servers for a PHP update, all the hosters & enterprises terrified by the vuln, gave $100k, or just $50k a year to the PHP Foundation, things could look very differently. Go, make your employer sponsor *today* thephp.foundation/sponsor/ #php #phpc @ThePHPF
Yes this looks bad, but you're also passing unsanitized, untrusted user input directly into `include()`. That's ... an entirely reckless self own that doesn't rely on php2shell to pwn your server.
As anyone who's attended any of my talks will remind you: never trust user input!
Thank you to the organizations who do contribute financially to the PHP Foundation. Most of the work to maintain the language is unpaid labor by volunteers. Still, this money goes a LONG way to helping keep it going.
The Foundation deserves everyone's support.
Chainguard received PHP’s fix for two critical RCEs under embargo, like every other distributor. On October 21 at 07:41 UTC, more than six hours before the coordinated release, it published built images containing that fix.
The PHP Foundation’s postmortem says Chainguard unilaterally broke the embargo. From that point, any attacker could study the fix in binary form while every other PHP user was still waiting.
CVE-2026-109618 and CVE-2026-109619 let attackers run code on web servers without logging in. PHP runs 69% of websites whose server-side language is known.
The embargo was already under strain. The CVE IDs leaked the day before, and Calif accidentally posted an exploit video that evening. PHP pulled the release forward a day but held it until 14:00 UTC, because distributors were still packaging and an immediate release would have left many users without a clean way to update. Chainguard went first anyway.
Chainguard CEO Dan Lorenc says several vendors in the disclosure had reported exploits in the wild, and that he notified the group right after making the call. He did not name the vendors or publish evidence. PHP’s security team found no working public exploit by release time. Lorenc has since apologized for the added stress on PHP’s maintainers.
Chainguard’s disclosure policy allows it to shorten timelines when exploitation is active. The patch it shipped was PHP’s, shared under PHP’s embargo.
In July, Lorenc wrote: “Pre-disclosure protection extends exactly as far as the people you can vet and hold to an embargo.”
Coordinated disclosure only works if everyone holding the fix ships at the same moment. When one party goes early, the fix becomes a map for attackers, and the users still waiting carry the risk.
PHP owned its part. Its postmortem calls the long delay in fixing the underlying bug, first spotted in a 2024 audit, “a structural failure.” It is asking the companies that run on PHP to fund more engine engineers.
If you haven’t patched: update the PHP runtime itself, not just WordPress or your framework, to 8.5.12, 8.4.27, 8.3.36, or 8.2.35. Then restart your workers.
The PHP Foundation says Chainguard unilaterally broke the embargo and published built images containing the critical RCE fixes more than six hours early:
“This disregarded weeks of work by many parties toward a coordinated disclosure.”
socket.dev/blog/php-embargo-…
Your Sites Are Protected Against the PHP2Shell Vulnerabilities automattic.com/2026/10/21/yo… via @automattic
















