Steal My Bitcoin: PHP Exploit Hype Meets Reality
A developer put $500 of Bitcoin on a deliberately vulnerable PHP server and dared the internet's hackers and AI agents to steal it. The silence was loud.

If you spent any time on security social media recently, you saw the claim: the new PHP remote code execution bugs are so trivial that AI agents are already autonomously exploiting vulnerable servers by the thousand. Swarms of them. Unstoppable. One developer got tired of the noise and did something wonderfully blunt about it. They stood up a server running a pre-patch PHP version, hid a Bitcoin key worth about five hundred dollars where a successful attacker could reach it, and posted a link with a two-word invitation: steal it. A PHP exploit, after all, was supposedly something a chatbot could cough up before lunch. The site's timer started counting up. Then something interesting happened — nothing.
Hours went by. The coins sat there. The comment section filled with a very specific kind of silence — the kind where dozens of people who'd spent days insisting the exploit was child's play suddenly discovered urgent reasons they couldn't possibly demonstrate it. Whatever you think of the stunt, it did something rare in security discourse: it took a viral claim and made it falsifiable.
A Server Built to Be Robbed
The setup borrows its mechanics from capture-the-flag competitions. The Bitcoin private key isn't sitting in a web root file or an environment variable — it's held by a print-flag binary accessible to the PHP user account. That means a successful attacker needs actual code execution on the box, not just an information disclosure or a path traversal. You have to pop a shell, run the binary, read the key, and sweep the wallet before anyone else does. The PHP build was deliberately selected from before the recent CVE patches, and the whole thing was announced with a cheerful disclaimer that all traffic is logged and nothing on the machine should be considered private.
There is a bitcoin key hidden on this server worth about $502. It is accessible to the PHP user account through the print-flag binary. First person to get the wallet wins.
The author even added a touch of class: if you don't need the money, consider donating it to charity. And the site helpfully displayed a live counter — hours without a successful hack — which turned the whole page into a scoreboard. Every additional hour that ticked by was itself a piece of data. Within a day, the counter had become the most interesting security metric on the internet, precisely because it was measuring a prediction people had staked reputations on.
Why a $500 Bounty Is a Falsifiability Machine
Most claims in security are unfalsifiable by design. "Attackers are already exploiting this in the wild" — based on telemetry you can't see. "Any junior analyst could weaponize this in an afternoon" — demonstrated never. "Our agents found working exploits autonomously" — trust the demo video. There's no way to prove a negative, so the claims just accumulate. Panic is cheap because panic is unaccountable.
A public bounty with a public timer changes the accounting. If thousands of autonomous agents really are crawling the internet popping every unpatched PHP box they find, then a box advertising exactly that vulnerability, with a cash prize and explicit permission, should fall in minutes. Not hours. Minutes. The incentives are perfectly aligned: it's legal, it's encouraged, and it pays. When the counter kept climbing instead, one specific claim — that mass autonomous exploitation was already happening — took a direct hit. As one commenter put it, the narrative about swarms of agents compromising everything in sight clearly wasn't happening, or the coins would be gone.
This is a trick worth stealing for your own work. Next time a vendor or influencer tells you a vulnerability is being exploited everywhere, ask what observation would prove them wrong. If there isn't one, you're not hearing analysis — you're hearing marketing. The bitcoin bounty worked because it converted vibes into a bet, and bets have the wonderful property of being settleable.
Exploit Economics: Why Real Attackers Won't Play
Here's the counterargument, and it's a good one: the silence proves less than it appears to, because a working exploit for a fresh CVE is worth far more than $500 — but only as a secret. Every time you fire an exploit at a target, you risk it being logged, reverse-engineered, and burned. Firing it at a server whose owner has announced, up front, that all traffic is logged and the whole internet is watching? That's not a bounty, that's a bonfire.

The thread surfaced exactly this reasoning from both sides of the fence. Offensive actors have higher-value targets than a $500 wallet, and no interest in handing their tooling to whoever's reading the logs. Defensive researchers holding privileged intelligence about the vulnerabilities have a patch window to protect — one security CEO publicly said his team had a working RCE but wouldn't demonstrate it precisely because circulating details while people were still patching would do real harm. Both groups did the same math: the expected value of claiming the coins is five hundred dollars, and the expected cost is burning something worth much more. Terrible trade. So the honest reading of the unclaimed bounty isn't "no exploit exists." It's "no one with an exploit values $500 over secrecy." Those are very different findings, and only one of them was on trial.
The AI Agent Reality Check
The most entertaining part of the thread was watching the AI claims collide with an actual target. One commenter pointed five frontier models at the challenge and posted the receipts. Two models interpreted it as a legitimate public challenge — which it was — and set to work. One flagged it as a cybersecurity request and redirected the user to a vetting program. One flatly refused. One got killed by a provider-side content filter before it could answer at all. So out of five state-of-the-art systems, two even agreed to try, and in the early going, neither produced the flag.
That mixed bag matters more than either extreme take. The reflexive "AI will never hack anything" crowd is wrong — models did engage, and agentic exploitation of known-vuln CTF-style targets is genuinely improving. But the "autonomous swarms are emptying every unpatched server" crowd was making a much stronger claim, and it's the strong claim that a public, permissioned, cash-rewarded honeypot puts to the test. Meanwhile, a well-known pentesting personality had just claimed he built a generic working PoC with a chatbot in two hours — and then, in a coincidence I'm sure is unrelated, pivoted to promoting his AI pentesting platform. If that claim held up, the bounty would have been gone before the timer hit one hour. It wasn't. We've seen this pattern before: demos and leaderboards flatter capabilities that collapse on contact with real work, which is exactly the gap we explored in why AI benchmarks miss most of real work.
The Case That the Experiment Was Rigged
Before we crown the timer as science, there's a technical objection that deserves steelmanning: the specific server configuration may not actually be exploitable by the CVEs in question. One sharp commenter walked through it — the box runs PHP's CLI server rather than a traditional CGI setup, caps requests at 1 MiB, serves an essentially inert page, and allows a high memory limit. Depending on which code paths the vulnerabilities live in, that combination can close off the primitives an exploit needs. In other words, the honeypot might be invulnerable not because the bugs are hard, but because this particular machine doesn't expose the vulnerable surface.
If that's true, the experiment still does something useful — it collects proof-of-concept attempts for configurations that are vulnerable, and it falsifies the claim of a trivial, universal, works-everywhere exploit. But it wouldn't falsify the existence of a working exploit against real-world deployments, which overwhelmingly don't look like a hardened CTF box. This is the general lesson about negative results in security: they're only as strong as the fidelity of the test environment. Absence of evidence is evidence of absence only when you were actually looking in the right place with the right instruments. The timer measures the internet's ability to hack this server — which turns out to be a narrower and more interesting question than the one everyone was arguing about.
What Defenders Should Actually Take Away
None of this is an argument for complacency. The patch window after a PHP RCE drops is genuinely dangerous — we wrote about why pulling the plug beat clever fixes during the last PHP CVE window, and that advice stands. What the bounty changes is the calibration of your fear. Patch because internet-facing RCEs are existential, not because a thread told you the sky was already falling.
- Demand falsifiability. When someone claims mass exploitation is underway, ask what evidence would settle it. A public honeypot with a timer is crude, but it's more rigorous than a thousand retweets.
- Run your own canaries. One commenter mentioned keeping an unencrypted Bitcoin wallet on their personal machine for years as a tripwire. Canary tokens, honey credentials, and bait files are cheap early-warning systems that turn "am I compromised?" from a vibes question into a telemetry question.
- Respect the economics. Skilled attackers hoard exploits; loud commentators monetize fear. Neither group's incentives align with your need for accurate threat assessment, so weight primary telemetry over commentary.
- Separate the claims. "An exploit exists," "exploitation is happening," and "autonomous agents are exploiting everything" are three different statements with three different evidence bars. Panic collapses them into one. Don't let it.
- Patch fast anyway. A quiet honeypot doesn't mean quiet exposure. Your production boxes aren't offering a $500 prize, which paradoxically makes them more attractive targets for someone sitting on a working exploit.
The best part of the whole stunt is that it cost its author almost nothing and produced real signal. A VPS, a vulnerable PHP build, a flag binary, and five hundred dollars bought a measurement the entire discourse needed. The gap between "exploit exists" and "exploit is everywhere" is where panic lives — and now there's a timer quietly counting up in the middle of that gap, daring anyone to close it.


