Tell HN: I unknowingly broke the PHP RCE embargo. I am sorry.
520 points by petecooper a day ago
520 points by petecooper a day ago
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.
> 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. If you're not a party to an embargo, and no one told you an embargo even exists... you should not follow the embargo. In fact, you should maybe even consider leaking basic details or challenging the embargo if you are in this situation. In your situation, they had lost information asymmetry before the news got to you. I don't know where people got the idea that unrelated third parties have to follow embargos. Embargos are not about keeping secrets, they are about the game theory of coordinated disclosure. On one hand you have the OP, who is self reflecting. On the other hand you have Dan Lorenc from Chainguard. The thing is, his reasoning isn't even wrong (assuming what he said about the spread of PoCs and the ease of finding the vuln was true), but it clearly prioritized Chainguard customers over the broader ecosystem. it was easy to find if you had the tokens even without the chainguard patch The bragging by the discoverer made everyone start looking. Then when the PHP foundation made the announcement on the website there was a mad scramble. Up to 18 hours before release there were already demos. Look I get that it's a rock and a hard place but frankly at that point you should release the patch. I know there was a lot of fear over picking the wrong patch but having nothing is still bad. Yeah, I don’t think OP did anything wrong. Someone in the chain violated embargo, but it wasn’t OP. Well, this is an iterated prisoner’s dilemma. I’d say maybe it’s more like a Roko’s Basilisk. He knew the potential existence of an embargo, but didn’t do anything to protect the embargo. So now that the embargo turned out to be real, he will be punished. Otherwise if he truly did not know an embargo could even exist, he could not be blamed. There was no embargo. If there's an "embargo" but parties not subject to the embargo know about it... there's no embargo. Except he won’t be punished, because nothing he did was legally wrong. In the tech industry, there are punishments far worse than the legal system. Would you please identify those you're thinking of? on the darkweb you can pay people to break into wrongdoers houses and set their default browser to Edge. For extreme cases you can also have their TV connected to the internet and all EULAs accepted... It was exploited publicly even before the wide publicity following your post so the ultimate negative impact that you may be imagining, is actually quite small. Once it is publicly exploited the benefit of coordinated disclosure delays is hard to square with the risk. if you received the information about the RCEs without the information about the embargo, then you did not break the embargo. someone else up the chain did. this whole saga will be analyzed and we'll all come out better for it at the end. > if you received the information about the RCEs without the information about the embargo, then you did not break the embargo. 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. Just FYI, "responsible disclosure" is a term that many people (like me) dislike because it carries judgment about the merits of public disclosure that are not at all obvious. 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. That approach to disclosure is about discovering vulnerabilities. Talking about something with a published CVE isn't really comparable. I don't understand your point. A published CVE is already public and thus there's nothing really to disclose? > 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? 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. Doesn't the embargo end when the CVE is published? I thought that's the whole point in CVE allocate != CVE publish. It's not a press embargo in the sense that the whole package of information becomes public once the embargo expires. There will be a published record on the cve.org, but often those who initiated the embargo insist that key details related to the vulnerability remain private even after the existence of the vulnerability and its remediation have been published. 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.) No, a CVE being assigned or allocated can happen well in advance. It's just requesting an identifier and it can be reserved very early. For example: https://www.cve.org/CVERecord?id=CVE-2026-50000 I think that's what they're saying. Assigning the CVE happens much earlier than actually publishing, but it's the latter that ends the embargo. No, CVEs can be allocated before a vulnerability has even been found! Not sure that contradicts the claim. Publishing the CVE is what makes it public. The CVE record wasn't published yet when this particular embargo got broken. AFAIK it got published when the embargo ended, as it should. (I wasn't following anymore at that point, don't know for sure.) 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. [flagged] By now I've seen at least 5 different people or companies blamed for leaks or releasing fixes early. If anyone is at fault here, I'm looking at the PHP maintainers. The embargo apparently held for like two months, during which they have not managed to release patches. AFAIK it's pretty much to allow the security cabal of companies that get the early access to fix their stuff first before the dirty public can be granted privilege of fixing the bugs. I've been wondering about this in general. The Glasswing/Mythos and whatever the OpenAI equivalent is seem to be creating a privileged caste, on the other hand opening it up quickly means more attacks. Maybe a defined sunset for cyber capabilities being gated is the answer? > If anyone is at fault here, I'm looking at the PHP maintainers. There's a reason the moniker PHP was "pretty horrible programming". And well, things haven't changed in that regard. If you're seriously asking whether or not it's possible that someone was overconfident and thoughtless rather than malicious and calculating... yeah I find that very easy to believe. Process safety exists because as individuals and as groups we suck at this. I hope this is bait because that's not how it works. This is exactly how it works. People who are part of the embargo are responsible for making sure that anyone they share information with -- which should usually be nobody! -- are aware of and abide by the embargo. you cannot be subject to an embargo of which you had no knowledge and took no participation in. the embargo was already broken when pete received the information. So if I read the post here and told someone, would I be breaking the embargo? This is not a situation where "Ignorantia juris non excusat" applies. I'm trying to follow but how could one possibly know information (the embargo) that has not been shared? For the law, you can say that the law has been published and is at least available for review. that's my point. Someone cannot come at you saying you were still under the rules of the embargo if you had no idea the embargo existed so now you're in violation and get to suffer the consequences. You cannot say that about the law. That’s kind of you, Pete, but it was leaked and being exploited well prior to your previous posting here: https://aws.amazon.com/blogs/security/amazon-threat-intellig... Don't be silly, you can't possibly be responsible for breaking an embargo you weren't subject to or informed about. That's fair. For clarity: I take responsibility for posting on HN, without knowing the facts. How would you even know whether you knew the facts? It sounds like what you knew was more than just consistent with there being no embargo, you were explicitly told there was no embargo. After a certain point, there's a limit to how far up the chain any of us can be expected to follow the logical chain of what we genuinely think are true, and this doesn't seem like a glaringly obvious case where you were being reckless. 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. Not sure what you are apologizing for. It's a severely overblown bug that ended up on the front page of New York Times and the Japan Prime Minister had to get involved too. The bug itself is non trivial to exploit from just public requests to a web server so I am not sure what the hysteria is about. It's no different from the other hundred or so CVEs I see being posted or dropped everyday. It 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. What does "non trivial to exploit from just public requests" mean? It's known to be exploitable on more than one stock PHP application. This really is a 5-alarm fire. I think people are just latching onto the post that hit the front page earlier today about it being non-trivial to exploit, combined with the fact that there seem to be about a billion PoC out there, most of which don't work. Right, that's what's worrying me. It is not interesting that the most widely circulated public POC/demos don't work. All you should care about is the (currently) non-public POCs that do work, of which there are apparently several. The most direct exploit requires a compromised supply chain which ranks it about as dangerous as your usual dependency exploits. Say what you will about OpenAI, Wiz etc but if OpenAI, Wiz, Cloudflare, the PHP Foundation and pretty much every CERT out there together recommend to take down PHP apps and patch immediately then I'm very much inclined to follow that advice. 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. I think this is just false? Are we playing some kind of weird game of telephone? Is the term "direct exploit" doing way more work in that sentence than you mean it to? The alternative route through the web forms requires the absence of ASLR. So you need to spam the endpoint, like a lot. You can probably mitigate at the edge (CDNs) or perhaps at the reverse proxy level (NGINX) through e.g. rate limiting. More of a web version of row hammer then some sort of trivial SQL injection attack that works consistently. Maybe a LAMP stack on an extremely ancient version of Linux is vulnerable out of the box. Quit the fear mongering please, you do the security community no favors. so confident
so completely incorrect educate yourself https://oliviagallucci.com/aslr-bypass-techniques-and-circum...
creatonez - 9 hours ago
tchalla - 8 hours ago
KingMob - an hour ago
r_lee - 38 minutes ago
hparadiz - 17 minutes ago
apaprocki - an hour ago
adastra22 - 9 hours ago
deadbabe - 7 hours ago
syrrim - 5 hours ago
adastra22 - 6 hours ago
deadbabe - 5 hours ago
plemer - 4 hours ago
lexicality - 27 minutes ago
cmrx64 - 2 minutes ago
john_strinlai - 12 hours ago
k1w1 - 7 hours ago
nahsra - 7 hours ago
derekerdmann - 7 hours ago
fooqux - 4 hours ago
bawolff - 2 hours ago
theteapot - 10 hours ago
fweimer - an hour ago
da_chicken - 8 hours ago
david_shaw - 8 hours ago
octoberfranklin - 9 hours ago
theteapot - 7 hours ago
eqvinox - 6 hours ago
KennyBlanken - 10 hours ago
user43928 - 10 hours ago
InsidiousWombat - 7 hours ago
ern - 7 hours ago
nekusar - 9 hours ago
EA-3167 - 10 hours ago
kinduff - 12 hours ago
cperciva - 12 hours ago
john_strinlai - 12 hours ago
michaelbuckbee - 12 hours ago
dylan604 - 12 hours ago
garbageman - 11 hours ago
dylan604 - 10 hours ago
rancar2 - 18 hours ago
cwillu - 21 hours ago
petecooper - 20 hours ago
saghm - 8 hours ago
Onavo - 19 hours ago
tptacek - 11 hours ago
CER10TY - 11 hours ago
tptacek - 11 hours ago
Onavo - 11 hours ago
CER10TY - 10 hours ago
tptacek - 11 hours ago
Onavo - 11 hours ago
milkshakes - 7 hours ago