Tell HN: I unknowingly broke the PHP RCE embargo. I am sorry.

1 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.

  • Yeah, I don’t think OP did anything wrong. Someone in the chain violated embargo, but it wasn’t OP.

  • isn't "coordinated disclosure" exactly about keeping, embargoing, a secret?

  • 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.

      8 replies →

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.

    • > 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.

  • [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.

      3 replies →

    • 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.

      1 reply →

  • I hope this is bait because that's not how it works.

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.

      27 replies →

  • Responsibility may include vetting your sources - is this person competent and dutiful, to actually know there's no embargo? - and researching the situation, and thinking several moves ahead, and other stuff.

    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.

    • >And question how many other people they might have blabbered to.

      100%. I'm concerned about the two-way street this might also have opened me up to with information I shared privately with this individual. Nothing significant or incriminating, but the professional relationship is concluded.

Hey man, you're probably feeling pretty shit right now.

> I have learned my lesson.

If what you've said is true, and you were not aware of the embargo... then you are not responsible.

By taking responsibility, you're actually making the whole debacle even worse, because you are clouding the actual responsible PROCESS that failed.

Note I said process, and not person. In a situation like this, the post-mortem MUST be blameless. If people are afraid or feel ashamed, and don't come forward, then that's how even worse outcomes can start getting lined up. Blameless, not even to you, but the person who told you, and who told them, all the way up the chain.

If there are people in your organization who are trying to pin this on you, you must push back. It isn't right, and it isn't fair.

What does “take full responsibility” mean in the present context? Are you forfeiting all your assets and pledging the next twenty generations of your descendants into peonage?

(For clarity, I’m being facetious, but it’s a really meaningless and empty phrase to commit to the written record.)

  • >What does “take full responsibility” mean in the present context?

    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.

    • Relax. You did no wrong. You reacted to the information that was ‘local’ to you. I am merely objecting (hopefully humorously) to the phrase “take full responsibility “: it is uncalled-for, unnecessary, and vacuous. Try to have a good Thursday. Tuesday was not your fault.

    • I might be in Cornwall in a bit, so I might take you up on that :)

      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.

      1 reply →

    • The takeaway shouldn’t have been “don’t post” (mainly because someone else would have) but instead “news reporting is hellaciously inaccurate”.

    • Shit happens.

      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.

      8 replies →

  • It means they agree they are culpable in the specified activity, and are ready to accept its consequences. The consequences depend on the nature of the activity and the actors involved. If the activity was illegal, they agree to be charged with the crime. If the activity was unethical, they agree to be censured by their peers. If the activity was uncompassionate or immoral, they agree that their standing in community may be affected accordingly.

    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?

  • > What does “take full responsibility” mean in the present context?

    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.

    • “Nobody else’s fault but mine” is a perfectly good way of asserting “nobody else’s fault but mine”; “I take full responsibility” is something else entirely and the two are not synonymous. Hyperbole needs to be radically discounted.

      2 replies →

    • I know nothing of who Pete is or his associations, so any accuracy on the following speculation is purely coincidental.

      "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.

      3 replies →

  • I think its just an acknowledgement that they screwed up (as opposed to trying to hedge by claiming its really someone elses fault).

    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.

  • You're ignoring and severely underestimating social responsibility and social consequences.

    • A good-faith judgement was made within a broader context that was unknown to him. What are we expected to demand, hanging on electrified barbed wire?? He acted in good faith, he’s not the architect of a global cataclysm.

  • Taking responsibility for a mistake is neither meaningless nor empty, but honorable. The very essence of humanity.

    • It makes no sense, it is used/abused by politicians and corporations all the time. There are no consequences for the responsible party (of course, if there were then this phrase would not be abused so much)

    • It is honourable but it is also linguistic abuse that drains the phrase of its full semantic meaning. “Take full responsibility” must remain a stricture of the highest regard. He is not fully responsible nor should he be held to be nor should we demand that he be and most importantly we must not dilute that phrase of its full semantic import, or else we shall have to come up with another one once this one is devalued to mean essentially nothing beyond “I fucked up in good faith and with a lack of information that was concealed for me for decisions taken by others in good faith way upstream of myself”.

    • It's words vs. action, and I couldn't care less about anyone's words.

      And honor is in the action, dishonor in the words.

  • It does NOT mean "He agrees to settle any financial claims against himself or his employer, for damages caused by negligence".

    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.

    • What does “I take full responsibility” mean if not (amongst other things) “I accept it is my duty to pay reparations”? As you yourself rephrase it “he could have said ‘I blame only myself for this mistake, nothing else has to change’”. That would have been sufficient and beyond necessary. “I accept full responsibility” is corporate-speak empty hyperbole, and it has to end. Is he any more responsible than those who introduced the hole in the first place? No. Is he responsible for not adhering to agreements he was not privy to? No. He cannot “take full responsibility” because that is an utterly unreasonable burden to place upon him, a lone well-meaning actor who unbeknownst to him took a misstep. We need to discount this corporate-speak linguistic hyperbole.

> 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.

I'm not saying it needs to be a public burning, but I sure hope someone figures out who dropped the critical metadata bit so they can avoid telling that party critical things in the future.

  • Eh. I'd rather we set up a system where we don't have to rely on people being 100 % perfect for it to work. I'd be much more interested in what went on simultaneously that caused the meta data to get dropped, rather than who happened to be the one to do it this one time.

As an Australian I thank you. I'd much rather have spent all day today patching things than tomorrow. It's Friday afternoon right now!

There's a rule about not pushing to prod on Friday. I feel the same should apply for security patches ;-)

You were not under any embargo. This only goes for the first person in the chain, whoever that was and there is absolutely nothing to apologize for.

The first rule of the fight club only applies if you know about the fight club.

I don’t know if embargoes have much effect anymore. They used AI to find this issue, meaning anyone else could also find the issue with time and the right model. The clock is always ticking after a CVE but now it ticks faster. I am certain that companies like Cellebrite are pointing a bunch of models at popular repos and filing away all the exploits they find in a database.

I also got that information before your post. I believe an embargo is impossible to keep up when it takes way too long to get a fix out.

Don't feel too bad. Just knowing a "10.0" RCE CVE is inbound w/o extra details doesn't get you very far. The actions of calif.io and Chainguard after your post was what caused the damage.

  • > Just knowing a "10.0" RCE CVE is inbound w/o extra details doesn't get you very far

    Well that's exactly what chainguard claims though. "Find bad bugs in PHP" is the prompt they claim they used to rediscover the issue

All vulnerabilities should be disclosed immediately, publically. That would over a short time lead to much better security practices.

I really hope this isn’t chewing at you and that you’re just trying to do what you feel is the right thing by posting this.

The only bad guys here are those who exploit issues like this for unethical reasons.

You clearly aren't that person.

Regarding your perceived mistake, we all make them.

Please forgive yourself and understand that the negative feelings and thoughts you are having are a mark of decency but do not represent reality, and if they persist please seek help to get you back on track.

As an aside, to you and those like you who take on the task of fighting and protecting against these attacks with often nothing to gain except hurt like this:

Thank you for your service.

“I don't get it. Why are they confessing?” “They're not confessing.” “They're bragging.”

Honestly this has been the most fun week I've had, thanks to this leak. I'm grateful. Fun stuff happened, shitty companies learned the value of capable and fast engineering teams.

All in all, I think this leak increased the value of developers, so I am thankful for your leak.

There are companies whose "rogue" agents have hacked 6 7 companies and at least 2 3 govts. They haven't faced any consequences at all! They actually hacked into those companies

And there is you who is taking responsibility for an embargo you did not know about!!

> I take full responsibility for my actions.

Meaning? Like... global financial fallout?

> I have learned my lesson.

Meaning? Like... feel bad for a week, and then back to normal?

are you the guy working at Chainguard publishing images...?

  • Nope. No connection or affiliation with Chainguard at all:

    https://news.ycombinator.com/item?id=50183326

    • Hah, I was trying to find this comment you made. There's confusingly also "Calif" in the mix (possibly closer to your string of people, but not your affiliation either). I wonder if, perhaps, it was easier to point to your HN post for bleepingcomputer, than what Chainguard did (you only expressed something was coming). It's all slightly immaterial since exploit attempts started 3-4 days.

      1 reply →

So much pearl clutching from these security companies. An embargo isn’t an enforceable contract, expect it to leak and be ready to fast forward your plan. Don’t start pointing fingers because people protected themselves or their customers once the dam broke.

This does feel like the fix took so long to bake and was so obvious way too many people who are into PHP knew about it, I knew about eMudra's cert issue as soon as Chrome and Firefox pushed updates to disallow them for instance because of reasons, and it wasn't even fixed after it was all made public on several platforms, I think Apple still hasn't fixed it properly, the trust Store is still fucked not sure if Safari was separately patched, maybe there is an os update in the last few hours I missed.

This entire RCE race is always annoying.

It was a good thing. It started useful conversations and taught valuable lessons that we probably wouldn't have faced with a more "traditional" vuln disclosure/patch process. We're going to see this a whole lot more with AI, probably as 0-days. It's better that we got the fire drill out of the way now.

You broke nothing, it's just another day my guy. Go for a walk, drink some water, you know, take care of yourself - others failed to follow a process, not like you threw out POCs left and right.

The security field is full of a bunch of self important jagoffs that think they are “super smart”. Its all a joke and its sad that anyone feels they need to play these stupid games.

Security is important but the people in the security field are clowns and it seems it has gotten worse over the last 20 years.

So.. what has the effect of this all been? I understand that the early release of POC exploits increased the pressure for mitigations in advance of the patch release and caused a lot of work and stress. I have read the tweets from Cloudflare with statistics for malformed requests related to suspected exploit attempts.

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, based on the coordinated action of many, a real issue was addressed in time? Or is it like Hale Bopp where everybody watched, and a few casualties in the preparation, but ultimately a nothingburger?

Flame on!

Can someone, with the benefit of hindsight, explain the embargo ? Why isn't there a clause "if the vuln leaks, embargo is broken" . I still don't understand the fuss.

Everyone knew about the vuln well before the patches going live. The embargo, at that point, made things worse.

In plain english, please.

  • The idea is that nobody has chance to have prior knowledge to identify or research the bug until it is generally possible to apply the fix immediately. If someone leaks the patch beforehand, others can inspect the bug and start exploiting it in the wild, while others have no chance to apply the patch.

    Whether someone just leaked the CVE numbers or just ”there is a 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 successful 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.

    In this case, the area where the bug is in PHP, leaked partially, but apparently there was no enough evidence that it was exploited succesfully or if any of the PoCs in the wild actually worked properly. So patch or related detailed information was not released before the initial schedule.

    • > And most ”PoC”:s in the wild were credible-looking but vibecoded mess that did nothing what sources claimed.

      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.

    • Your later insights about the vuln POCs being a scam helped me better understand the situation.

      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.

It happens. Information cascades are messy, especially with multi-layered contacts

Thanks for owning it ,the best thing now is ensuring the patch details are clear once the official release drops. Moving forward is what matters

  • You’re setting a great example of how to be open and take responsibility, even when you’re not actually at fault. I really respect how you’ve handled this. You’ve also given the community a valuable reminder that some security disclosures may be under embargo, and that it’s worth having in mind before sharing.

> I take full responsibility for my actions.

I would like this to materialize, but that's just empty words.

> It was not remotely my intention to cause any of the subsequent side effects.

What were your intentions, then?

> my intention was to alert others in a similar position to be aware of the importance/urgency of the updates.

Have you lived under the stone for the past few years with respect to cybersecurity? Yes you have. All of you ignore security as in "it doesn't apply to me", "they won't break into my software because I'm truly the best 10x developer in the world" etc.

> I have learned my lesson.

I certainly doubt that. A person with IQ only a tiny bit bigger than Trump's wouldn't seek public attention so badly to disclose a security hole in a public forum.

When such praise-seeking habits have stopped being embarrassing?

Really hope you are not in the US. This kind of admission would be used against you in a civil trial, and lawyers love to sue for just about any reason under the sun. Someone could drag you to court and you might be able to defend yourself, but at an extremely painful cost both financially and emotionally. While I think that would be utter bullshit, that does seem to be the way this country operates now.

  • That should be no problem: he posted exactly *because* he meant to take full responsibility for his actions.

  • I am not in the US.

    • The parent is getting downvoted but he is absolutely right. Do not ever do what you just did. It makes you an easy target for a frivolous lawsuit in the US or in other countries because of the potential liabilities in your message, they are real. Even if you didn't do anything wrong, you are painting a target on your back, for no reason. I would ask HN to delete that thread directly.

      You cannot foresee the financial/civil consequences of that RCE and some people might be looking for scapegoats in the future.

      11 replies →

This is definitionally humble bragging. First of all the apology is in bad faith because there is nothing to apologize for. We are all giving the discovered CVEs attention (the brag component) under the guise of an apology (the humble component). I am being downvoted by well meaning, people pleasers that don't mind if they waste our time and attention doing it. Sounds great.

Is there any insight on if this was a "Bug" or a "Sophisticated Feature" put there by state actors long ago that was now just discovered.