so, about the php security release
what i did with my own apps when php2shell dropped, the people who shipped the fix, and why you should build like you're already going to get hacked
the details about these two cves are everywhere, so i won’t tell you about them again. this is about my thoughts on all of it, and how the day went for me
my morning
it was 8am when i woke up to a bazillion messages, literally everywhere. that scared me
so i took down every website i had. some went offline, some got a static page instead. then i deleted a bunch of side projects that were lingering around for no reason. if a project isn’t online, nobody can hack it
everything i run is on laravel cloud, so once the team patched the platform, i put it all back online. props to the laravel cloud team
the people you don’t see
a new php version isn’t a git tag. there are build pipelines, there are packages for every platform, there are mirrors that spread the downloads around the world. and yesterday the whole world wanted all of it at the same time
all of that sits on a very small group of people. some of them aren’t even paid for it
we also saw big governments and big corporations tweet about it, complain a bit, and donate exactly zero dollars to the cause. i find that hilarious
this needs to be fixed. or maybe that’s just how open source is. i don’t even know at this point
the embargo
this part of the story still confuses me
the fix had an embargo until 14:00 utc. chainguard shipped fixed builds before that, and dan lorenc explained why: they saw reports of exploits in the wild and wanted to protect people. the php foundation disagreed
but i don’t buy the “protect people” part. a fixed build shows exactly what got fixed, and what got fixed tells you exactly where the hole is. ship that early and you’re handing out weapons. not only to hackers, but to anyone with an ai model and a free afternoon
so yeah, this whole story needs to be clarified
what you should do
update php today: 8.5.12, 8.4.27, 8.3.36 or 8.2.35. if you’re on something older than 8.2, there’s no fix for you, so today is the day you upgrade
then the bigger thing. it’s 2026. build like you’re already going to get hacked, because sooner or later you probably will
collect less. only keep the customer data you actually need. anything you never store can’t leak
encrypt everything you keep. not only passwords and card numbers: names, emails, addresses, photos, uploads, all of it. if someone gets into your database or your storage, they should find nothing they can read
delete what you don’t need anymore. old accounts, expired orders, stuff from years ago that nobody uses. set it up so it gets deleted automatically, not “someday”
don’t store tokens or api keys unless you really really really really have to. if you do, encrypt them hardcore or put them in a secrets manager. and either way, keep your encryption keys away from the data they protect
the less data you keep, the less you have to worry about when you get hacked