Tell HN: I unknowingly broke the PHP RCE embargo. I am sorry
I posted here about the then-upcoming PHP RCEs related to CVE-2026-109618 & CVE-2026-109619. I appreciate this has had considerable knock-on effects with the schedule for co-ordinated disclosure, and created additional workload.
I am truly sorry. I take full responsibility for my actions.
It was not remotely my intention to cause any of the subsequent side effects.
At the time of posting, I didn't know about any embargo. My contact had told me there was no embargo, and her contact had told her the same thing.
As someone who follows the 4-weekly PHP release cycle and compiles it from source, my intention was to alert others in a similar position to be aware of the importance/urgency of the updates.
That clearly backfired in a pretty wild fashion. I have learned my lesson.
254 comments
[ 1.9 ms ] story [ 33.7 ms ] threadIt will be headlines on Hacker News regardless due to sheer sensationalism, I think most DevSecOps people would rather find out the news here first than via their boss calling them after reading the morning news.
[1] https://www.asml.com/en/technology/all-about-microchips/micr...
So when someone in West says they never used a computer in 2026 (or even just this decade) I don't believe them, unless they're so old they never used a mobile phone, don't watch any TV, and live like really sheltered like a hermit in some squad. A policitian needs to communicate; they surely use computers during their endeavor. Even the very old POTS is essentially also computers, same with old CRT TVs, ATMs, or computers used during public transport.
Ergo, the point is they've almost surely used computers; theyare just not aware how omnipresent computers are in our world,and ut isn't even a recent change either (the recent chamge is that they're 'smart' ie. 'networked' (TCP/IP stack).
Due to the insane media coverage there'll of course be a deluge of PoCs, most of which won't work. But constantly refreshing Twitter to see whether there's a working PoC is not a good use of time nor a great security strategy.
The only thing you have to know in advance is the relative memory offset distances, and that's it. Memory feng shui was the longest part of the implementation.
[1] https://github.com/cookiengineer/actual-php2shell
It is split up into two branches and demos, see the heap feng shui document?
ASLR enabled requires a way to create more data, which I intentionally did not create in the index.php because other folks claimed that is "cheating". That was the demo that wiz created.
Maybe you should read the repo next time? The whole point of this demo is that the assumed to be hard part (mem feng shui) is what LLMs are actually good at.
We're all (well, I guess not all, but the group that's worth caring about, and I hope it's at least most) just operating the best we can on the information we have and trying to make decisions based on that. As long as you're acting in good faith on information that you had genuine basis for believing is true, it seems like it would be unreasonable to expect someone in your situation to somehow intuit that you were given false information or grossly misunderstood what sounds like a pretty straightforward declaration of fact from someone you didn't have any reason to doubt.
At the risk of some armchair paycholoanalysis because it does seem like you genuinely feel some guilt over this: I can emphathize feeling guilty about the outcome of an action that in a vacuum would not have been hard to make differently, but my experience is that those of us who have a nasty habit of beating ourselves up over things when we really don't have much blame will often recognize when on the other side that it would not be fair to hold someone else to that standard. I struggle a lot with how sometimes knowing something is true doesn't always make it feel true, and even though hearing someone else saying it doesn't magically make it all better, I still think it's valuable to hear it from someone else, so if I happen to be right about how you're feeling, nothing about all of this is your fault, and to the extent that you're able to, try not to beat yourself up over your misfortune to get caught in the middle of all this due to circumstances that realistically were outside your control.
Reality is that everyone has to make decisions in finite time, using the resources they actually have.
And I'd put a whole lot more responsibility further up that chain of contacts. And question how many other people they might have blabbered to.
(For clarity, I’m being facetious, but it’s a really meaningless and empty phrase to commit to the written record.)
I posted something that -- in hindsight -- I shouldn't have, and it had repercussions for a lot of people. An action that I took had considerable knock-in effects around the world.
Some outlets are reporting that my action of posting something that I believed to be in good faith was an indicator or catalyst for the embargo to be tossed out and a previously-agreed schedule to change in short order.
That's not a normal Wednesday for me. Not even vaguely. I've not slept well since, and my taking ownership with an apology is this new course of action. Hopefully I'll sleep tonight.
re: assets and peonage – I am but a broke & wizened nerd with no known descendants. If you're ever in Cornwall, UK: look me up, I'll gladly buy you a sleep-friendly beverage. And I’m not being facetious.
Years ago I lost $250K at work, well gave away, so real money out the door. I figured out why we were bleeding, that the mistake was mine (2008 vs 2009 in a function) and then changed the pattern to use explicit names rather than numbered events.
I figured at the end of the day I was fired. My boss laughed at me and told me good job for owning my mistake, fixing it, and then making sure it could not happen again.
Honestly don't just apologize - tell the whole story, in full. Tell us what you should have done differently at each step. Tell us where the process failed you and us. Those sorts of narratives and suggestions are how processes get improved. There is a humble and informative post mortem that you can write up and publish (beyond HN) for everyone's edification. But that should honestly be a Monday thing, when you have a clear head and some more perspective on the whole situation.
Honestly though, dont beat yourself up over this.
i forget the origin of the story, but i loosely remember a story about a boss and employee in a similar situation. the important bit was the bosses line ($ adjusted to match your story):
"why would i fire you when i just spent $250k training you"
But yeah, it happens. I could share some stories of me (being responsible for) bricking multiple ~200k circuit boards in a row, if that makes it better. In the end nobody really cared and the world kept on turning. Good decisions might come from experience, but experience comes from bad decisions. It's how it is.
Aside from Pete's reply (see adjacent comment), I'd add that him taking full responsibility is also his way of saying his post was nobody else's fault but his.
In other words it's less about forfeiting assets and descendant peonage, and more about saying "the buck stops with me".
At least that's my read of his sentiment. Pete can expand if need be.
"Take full responsibility" is also something someone set up as a scapegoat might say. By claiming nobody else influenced, coerced, or otherwise convinced them to make that statement, every/any one else involved can then wash their hands of the situation.
I'm merely playing devil's advocate here, and it's just a sign of the times that a person making an honest admission can be interpreted in such a manner.
I'm not a scapegoat. Aside from a few brusque messages and a few people from my past finding me on LinkedIn, I've heard nothing from anyone.
I've seen my HN username mentioned on various outlets, and That Post© has been linked from a Wikipedia article, so I can chalk this up to experience. My fear (?) is that HN would get a reputational clobbering from me 'leaking', but given the other moving parts in this whole event I probably shouldn't be too concerned.
It's been a while since I've been involved in an international event, I'm a bit rusty on it!
That's about it. Mea culpa.
And honor is in the action, dishonor in the words.
Could have said "I blame only myself for this mistake, nothing else needs to change".
This will keep happening until the system where this can happen runs out of willing scapegoats.
So many people give non-apologies where they say sorry while also trying to deflect blame elsewhere, i think it speaks well of this person they are not doing that.
But most importantly, by assigning blame, they have cleared the contention at hand, taking the critical first step towards resolution of the matter. Without this, the issue may simply be stuck in limbo, taking up valuable time and resources and may never be resolved even. By acknowledging their mistake, they also wish to signal to others that they have learnt a peronsal lesson and would try to avoid making the same mistake in future. So it carries a lot of implications and is not an empty phrase at all.
Sure there may be people who throw around the phrase lightly, whether one believes them or not depends on how they are viewed in the eyes of others. So unless there is reason to believe otherwise, I would give them the benefit of doubt. If you want to imagine a world where the concept of "taking responsibility" doesn't exist, look at politicians. Is that how we want our society to function?
Today's PHP security release, and how we're strengthening security
https://news.ycombinator.com/item?id=50182987
and then everyone sht on me on reddit.
You cannot foresee the financial/civil consequences of that RCE and some people might be looking for scapegoats in the future.
https://med.stanford.edu/news/all-news/2017/10/in-patient-in...
> New research shows that discussing hospital errors with patients leads to better patient safety without spurring a barrage of malpractice claims.
> Anyone can sue anyone else for any reason.
And it's easier to have cause to sue when someone publish an "admission of guilt", which makes a lawsuit harder to dismiss thus costlier.
The author (Palanhuik, sp?) wrote the "core" of Fight Club in 2 hours (it's either Chapter 5 or 6, from memory). It "came to him," wasn't entirely his own work, the keys on his typewriter just getting tapped. I do not remember which author-interview he states this in, but his creative processes are worth listening/exploring (for both writers and not).
>the film adaptation rivals the original work
He was heavily involved in the film adaptation.
----
Rant (his other great book, IMHO) is Freudian time-travel-rape at its best (worst?) – I don't even like the genre! but his perspectives help you think beyond normalcy/complacancy, however offputing.
Your penance:
Three Hail Marys, one Our Father and an act of kindness.
Two minutes of silent prayer.
You have sinned.
Your penance:
Three Hail Claude's, one Our GPT and an act of loop engineering.
Two minutes of silent prompting.
Amen
We're also supposed to believe he didn't wonder why nobody else in his social media circles, lists, and forums were talking about it? He says he did what he did because he wanted to let people know.
We're supposed to believe he didn't stop and think "gosh, why is it falling to me to let people know about this?" It was mainstream media news less than 12 hours after it was announced.
What did happen is that a whole bunch of people had no clue and called the fact that "these 2 CVE IDs will be used for a PHP vulnerability" a CVE leak. Posts were going around yelling "CVE leak!" with a CVE database link that said "no information yet". Part of this is the mushed usage of "CVE" to just mean "vulnerability" rather than "CVE record". But still, quite ridiculous, and annoying. Information that CVE ID XYZ will be used for project ABC is *not* a leak. Like you say, CVE publishing matters. Getting the CVE record contents would be a leak.
For example: https://www.cve.org/CVERecord?id=CVE-2026-50000
Assigning the CVE happens much earlier than actually publishing, but it's the latter that ends the embargo.
Consider this example:
https://www.cve.org/CVERecord?id=CVE-2026-113119
At this time, the corresponding Chromium bug tracker entry is still private:
https://issues.chromium.org/issues/557075191
(I just picked this one at random, I haven't checked if the information is publicly available from another source.)
Doesn't responsible disclosure also apply? If I become aware of a vulnerability that doesn't seem to be widely known shouldn't I first attempt to report the issue responsibly?
In this case it appears the OP did know about the embargo "A reliable source has indicated an announcement is scheduled". I think that with security disclosures it is assumed they are not supposed to be publicized before the announcement, but if he hadn't known about the announcement and only heard about the RCEs, then publicly announcing their existence doesn't seem OK either.
This term came from an era where companies or projects were disrespectful and dismissive towards security researchers. Those orgs were generally bad risk practitioners, and they coined the term "responsible disclosure" to mean "you send us the info and we'll do whatever we want with it, for however long we want, etc".
Many security people (like me) prefer the term "coordinated disclosure" as a way to indicate a practice where both discoverer and patcher participate in a good faith, communicative, and timely process to get things fixed for the community.
The difference can be summed up like this: if I report vulnerability X to company Y, and company Y sits on it for 3 years, that is not responsible. It is more "responsible" (especially today) to report it to the public, so they can protect themselves in a non-official-patch way, because the likelihood of bad guys knowing about it and exploiting it are approaching near-certainty.
These terms are obviously not super scientific, but I try to point out the history whenever it comes up.
Renaming "responsible disclosure" to "coordinated disclosure" seems to have the same flaw, since a lazy company involved in coordinated disclosure might look more committed than it really is. The focus should be in the process and not the names.
Responsible disclosure puts the responsibility onto the researcher - it implies they're irresponsible if they didn't comply with the company's timeframe.
Coordinated disclosure accurately describes what _should_ happen - the disclosure happens after some X time (where X is a reasonable time that depends on the vulnerability, as determined by the researcher).
It's still completely responsible and ethical of a researcher to disclose an unpatched vulnerability even if the company/project doesn't want to, if they've unreasonably delayed patching. They'd never do it otherwise, and the public deserves to know those internal practices.
I feel this is a similar argument as the one about capitalizing "Internet", though.
Did they assume the information came from upstream php? I think if i got a new version of php that i thought was coming from official sources, i would assume there is nothing to responsibly disclose.
Everyone knew about the vuln well before the patches going live. The embargo, at that point, made things worse.
In plain english, please.
Whether someone just leaked the CVE numbers or just ”there is big bug in PHP” - that should not be enought to accelerate finding that bug. But other information that pins the bug for specific property or feature makes it easier to find and race against patching starts.
And at that point you don’t really know if someone really found it or not, since only few big organisations can collect that much data to detect succesful exploiting. And most ”PoC”:s in the wild were credible-looking but vibecoded mess that did nothing what sources claimed.
Until there is absolute evidence that exploitation happens in the wild, succesfully, you don’t leak the patch or bug details beforehand.
I could see the value of the embargo in the old world of “6 uber security firms and a few bounty hunters” but the new world of pointing AI at the PHP source just seems flimsy.
Could this be a variant of the survivorship bias? Maybe only the low quality PoCs ended up in the honeypots while the more capable actors avoided them.
- The fact that there's a release, the CVE numbers, CVSS score and date/time (though wrong).
- Calif's video.
- Some advice from the mitigation document.
Despite this, the technical details of the vulnerability remained unclear, and exploits released up to that point missed the key mechanisms. Chainguard acted based on rumors and almost made the situation much worse for everyone.
Of course, we are not omniscient and cannot prove definitively nothing happened, but we acted based on the data that was available at the time.
That would also seem to apply to the OP so no embargo was broken by his post.
I know breaches are often kept under wraps, and there's a long tail. But is there any evidence of impact at this point? Were any sites compromised that we know about? There was a lot of hullabaloo, with foreign and domestic LE agencies recommending sites be taken offline (holy shit!).
Was this like Y2K where, but for the coordinated action of many, a real issue was addressed? Or is it like Hale Bopp where everybody watched, and a few casualties in the preparation, but ultimately a nothingburger?
Flame on!
This entire RCE race is always annoying.
Security is important but the people in the security field are clowns and it seems it has gotten worse over the last 20 years.