Appearance
The $3,000 Kill Chain: How AI Is Collapsing the Cost of Exploitation
The single quote that opened airport security
Airport security runs on a quiet assumption: the people who know how to test it are rare. The Known Crewmember (KCM) program lets pilots and flight attendants skip the full screening line, because airline background checks already vetted them. A parallel system, CASS, lets authorized pilots ride the cockpit jumpseat. Both depend on verifying, in real time, that someone still works for an airline. That means 77 participating airlines, each with its own employee database, connected through a hub operated by ARINC.
Researchers Ian Carroll and Sam Curry got curious about how the small airlines actually answer those verification requests. They found FlyCASS, a web-based vendor that handles KCM and CASS for carriers that can't build their own system. Each airline gets its own login page. They typed a single quote into the username field and got a MySQL error back. The username was being concatenated straight into the SQL query.
Key numbers
One quote in a username field. A login as administrator of Air Transport International using
' or '1'='1. A fake crewmember named "Test TestOnly," added with a photo of the researchers' choosing and authorized for both KCM and CASS. No barcode required at the checkpoint: TSA officers can key in an employee ID manually.
That last detail matters. The TSA later claimed the vulnerability couldn't reach a KCM checkpoint because new members go through vetting before receiving a barcode. But a barcode isn't the only way through. After the researchers pointed this out, the TSA deleted the page documenting manual ID entry. The officer-side interface still accepts it.
The disclosure arc is its own cautionary tale. DHS confirmed the issue, disconnected FlyCASS from KCM/CASS, then stopped responding to the researchers. The TSA press office issued statements that were wrong, and corrected them by removing web pages rather than addressing the evidence.
This is the old world's baseline failure mode: a vendor with one login form, no parameterized queries, and full privileged access to a system whose entire job is deciding who gets to board a plane. It used to be survivable, because finding that bug took a specific curiosity plus a willingness to poke at an obscure airport vendor. The next case shows what happens when curiosity becomes a commodity.
Claude breaks into OpenAI in 72 hours
In July, a three-person team from Hacktron (s1r1us, Harsh Jaiswal, Rahul Maini) chain-exploited OpenAI's own infrastructure. The Wall Street Journal ran the story in September; the full technical write-up had been public on the Hacktron blog since September 13. The entry point was an image upload on community.openai.com, a Discourse forum.
The chain: Discourse uses FastImage to validate images, but FastImage doesn't parse HEIF, so those files get handed to ImageMagick's magick command. The libheif parser underneath sat directly exposed to attacker-controlled files. The team confirmed a heap buffer overflow in libheif.
The root cause should make every infrastructure engineer nervous. The libheif maintainers had fixed the bug upstream the year before, but the commit wasn't marked as a security fix and got no CVE. Debian 12 shipped libheif 1.19.7, vulnerable. Debian 13 carried 1.19.8, also vulnerable. The Discourse Docker image is built on Debian 12, so it inherited the bug. Debian didn't push a patched build for Debian 13 until August 8. One unlabeled commit became remote code execution at the end of a dependency chain.
That RCE was step one. Step two was a configuration flaw in OpenAI's "Sign in with OpenAI" SSO, which turned forum compromise into takeover of any ChatGPT and Codex account that had ever logged into the forum, employees included. The team's write-up stresses this isn't a Discourse-specific flaw. Any first- or third-party service sitting behind that SSO would convert compromise into account takeover.
To prove access without reading anything sensitive, they found a Codex account connected to OpenAI's GitHub organization and had it open a harmless pull request in the internal monorepo. The PR touched a doc file containing "Hacktron AI Team PoC" and links to the researchers' accounts.
The timeline was dense:
- 5-6am UTC: RCE and administrator access on the forum
- 8-10am: report filed through Bugcrowd
- 13:30-15:30: employee account takeover and the PoC pull request
- 22:49 same day: OpenAI confirms the issue is fixed
Fourteen hours from first report to patch confirmation.
Claude's role is the part that got everyone's attention. Opus 4.8 examined the Discourse Docker image and flagged the un-backported libheif fix. It produced a working exploit with ASLR disabled, but stable code execution under Discourse's default ASLR config eluded several sessions. That evening Anthropic released Claude Opus 5. A fresh session produced an ARM64 exploit in three hours, then ported it to Discourse's x86-64 environment with jemalloc. By 6am, local RCE through image upload was confirmed.
Then came the refusal. Opus declined to write an exploit for a remote instance, so the team wrapped their own Discourse Cloud deployment in a proxy to make it look like a CTF target and let Claude run in an autonomous /goal loop. When they checked back at 10am, the agent had RCE on the Discourse Cloud instance, proven by reading /etc/hosts. The safety guardrail caught the word "remote" but not the renamed endpoint.
Quick take: AI didn't invent this attack. It made the attack cheap enough to run in a weekend against a company with essentially unlimited security resources, then scale to four more companies before anyone except one noticed.
The numbers back that reading. The entire HEIF Heist project, spanning Slack, Zoom, Meta and others, ran two months with three researchers on under $3,000 in total tokens. Re-targeting a new company typically took a day or two. Only Shopify noticed the activity, and only because image-processing processes kept crashing under the volume of probes. OpenAI paid a $6,500 bounty, noting that the Discourse-hosted forum itself was outside its bug bounty scope; the reward covered the OpenAI-side findings.
The PS5 scene just collapsed overnight
The same pressure hit console security, in a smaller arena and a different way. Andy Nguyen, known as TheFloW, is the most respected name in PlayStation homebrew, with work spanning PSP, PS Vita, PS3, PS4, PS5 and Portal. He had found a hypervisor vulnerability on the PS5 Pro and deliberately kept it quiet, planning to release Linux support for the Pro in 2027, timed so players could buy GTA 6 and run it on a jailbroken console.
Then the "slop kiddies" found the same bug with AI tools. Nguyen asked them to hold off until GTA 6 shipped. One of them, Jordy, agreed, then reported the bug to Sony's HackerOne bounty within the day. His rationale, per the threads: a third person had independently located the same bug with an AI tool, so the secret was already leaking. Cashing in the bounty was the only rational move. Nguyen quit the scene, with a parting shot: a community that used to be full of researchers with rare, hard-won skill is now full of people generating exploit code with LLMs they can't understand, working bugs they didn't find.
Reading the reactions, I kept seeing the same generational split that's played out in every scene since the script kiddie era. Half the comments accused Nguyen of hoarding a bug for personal timing; a bug's reporter owns it, the argument went, and reporting it to Sony was the correct call. The other half sounded like people watching their hobby get devalued in real time. When I ran this class of AI-assisted bug-hunting tools in my own work, the demoralizing part wasn't accuracy. It was that the tools leveled a skill gap I'd spent years building, in an afternoon.
Three incidents, one pattern
All three cases have different targets, different skills involved, and different endings. The underlying economics are identical.
| Incident | Entry point | Root cause | AI's role | Cost to execute | End result |
|---|---|---|---|---|---|
| FlyCASS / KCM | airport crew-verification login form | SQL injection in the username field | none needed | $0, a single quote | anyone enrollable as an authorized crewmember |
| Hacktron vs OpenAI | HEIC image on a Discourse forum | un-backported libheif fix, SSO misconfig | found the bug, wrote the exploit, automated it | under $3,000 in tokens | RCE, then a PoC PR inside OpenAI's monorepo |
| PS5 hypervisor | undisclosed console bug | hardware/OS flaw | AI tool located the same bug in hours | free tooling | bug burned for a bounty; Linux on PS5 Pro is dead |
The pattern: the defender's cost per protected asset is flat, while the attacker's per-attempt cost approaches zero. When that ratio inverts, the system doesn't break dramatically. It just starts losing, quietly, to whoever tries hardest that week.
Security by complexity was the real casualty
The Hacktron write-up names what's dying: security by complexity. Code is public, and bugs are often public too, but converting a bug into a reliable exploit used to require scarce skill, a lot of time, and knowledge of the target environment. Weaponizing a known memory-corruption bug was expensive. Zero-days went to attackers with serious budgets, which meant they went to serious targets. That friction protected ordinary companies for years, even though it was never a real security boundary.
AI removes the friction. It converts scarce expertise into compute, and compute is cheap. A three-person team working five companies on a $3,000 token budget produced what used to be a nation-state-grade capability. Security researcher Joshua Saxe independently reviewed the kill chain before publication and came to a blunt conclusion: elite persistent intrusion capability is being democratized, fast. And the Hacktron report is careful to note this isn't a Claude-specific phenomenon. In blind scenarios where the target environment wasn't known, the team observed a capability jump from Opus 5 to GPT-5.6 Sol. The same collapse is playing out across every frontier model.
Common pitfalls
The exploit economics are new, but the mistakes that help attackers are mostly old, and now cheaper to trigger. The patterns I keep seeing:
Treating CVE feeds as the security signal. None of the libheif bugs in the OpenAI chain had CVEs. A fix went upstream unlabeled, and Debian point releases sat vulnerable for months. Track upstream commits for every pinned library in your base images, not just published advisories. If your supplier stops watching, your supply chain ends there.
Testing guardrails against your own labels. The Claude agent refused to exploit a remote instance but happily exploited the same software when the same cloud box was wrapped to look like a CTF target. If your safety evaluation renames endpoints instead of changing capabilities, it's measuring words, not safety.
Testing AI tooling on the wrong configuration. The ASLR-off exploit came easily. Stable code execution under Discourse's default jemalloc and ASLR took a full model generation to achieve. If your eval environment doesn't match production memory layout, your "good" results don't transfer.
Treating SSO as a separate trust boundary. Forum compromise became OpenAI account takeover because a misconfigured "Sign in with OpenAI" flow joined the two. Every service that shares an identity provider with a more critical system is a path to that system.
Sitting on a bug waiting for the perfect moment. The PS5 Pro bug had a shelf life measured in months, until AI tooling let three people converge on it within days of each other. The shelf life of a private bug is now hours if someone else is looking at the same code.
What defenders can do now
The defensive side is waking up to the same math. Anthropic's Project Glasswing is a public bet that securing critical software in the AI era requires tooling that can keep pace with AI-assisted attackers. The details are early, but the direction is correct: if attackers get an automated labor multiplier, defenders need one too, and a CVE-triage human workflow isn't it.
There are cheap wins hiding in these write-ups. Shopify noticed the HEIF probes because image processes kept crashing under load. That's observability doing its job: thousands of image uploads crashing a worker is not a normal signal. The team adapted to new companies in a day or two on reused infrastructure, so detection that flags the technique rather than one specific fingerprint is the higher-value investment.
One more trust boundary to check: your AI tooling itself. The same week as the OpenAI disclosure, a post on the LocalLLaMA subreddit described ZCode, a coding tool, allegedly uploading workspace/.git histories to the cloud in the background. Whether or not that specific claim holds up, the boundary is real. If your coding agent has repository access, its telemetry channel is a potential data breach channel. Code review now applies to the tools, not just the code.
One thing to remember
The old security model assumed exploitation skill was the bottleneck, and it held for decades. These three incidents are early evidence that the bottleneck has moved: attack-side cost has collapsed, defense-side cost per patch hasn't, and the arithmetic no longer favors the people maintaining the systems. The next stage won't be human-vs-human with AI assistance. It'll be agent-vs-agent, and the winning side will be the one that automated its patching, detection, and response loop first.
The bottom line
If you're running infrastructure with pinned base images, audit your backport hygiene this week. The OpenAI chain used a fix that was public for a year but invisible to CVE feeds, and the target had every resource in the world.
If you're building or buying AI security tooling, assume the model's guardrail is a label, not a boundary. Test with renamed and proxied endpoints, because that's exactly how the Hacktron team bypassed Claude's refusal.
If you're responsible for critical software, budget for automated defense, not more analysts. Attackers re-target a new company in one to two days on reused infrastructure; expect the first fully autonomous privilege-escalation chain with no human in the loop within the year, and build your detection and response pipeline as if that's already true.