The Reasoning Heist: Stealing Encrypted LLM Thoughts from GPT-5, Claude & Gemini — Fix It Now A research paper published at arxiv.org/abs/2608.09867 and hosted at stolen-thoughts.com demonstrated attacks that decrypt the encrypted chain-of-thought reasoning blocks returned by OpenAI, Anthropic, and Google APIs, exploiting a key management flaw that lets a weaker sibling model act as an oracle. The researchers reported that decoding 10,000 reasoning traces cost roughly $720, and noted 315,320 encrypted blocks had already been scraped from public GitHub and Hugging Face repositories. All three providers silently patched the core vector before publication, but the paper details four exploitation vectors and mitigation code for production systems. Imagine you're building a production application on top of GPT-5, Claude Opus, or Gemini. Your threat model is solid. You trust the provider's security guarantees. You know they encrypt the model's internal "chain of thought" — those reasoning traces are opaque base64 blobs, inaccessible to you or anyone else calling the API. The model thinks in private, the IP is protected, and unsafe content that the model "considers" but ultimately rejects never reaches your app. On August 11, 2026, a research paper shattered every one of those assumptions simultaneously. Published at arxiv.org/abs/2608.09867 and given the memorable vanity domain stolen-thoughts.com , the paper demonstrated a series of attacks against the encrypted reasoning blocks used by OpenAI, Anthropic, and Google. The researchers — exploiting a fundamental key management flaw across all three providers — proved that any encrypted "extended thinking" block could be decrypted using a weaker sibling model as an unwitting oracle. The total cost to decode 10,000 reasoning traces? Approximately $720 . That's not a misprint. For the price of a mid-range laptop, you could exfiltrate the proprietary reasoning methodology of the world's most advanced AI systems, harvest credentials that were never supposed to be visible, bypass safety systems from the outside, or inject persistent invisible instructions into a victim's agentic pipeline. The paper triggered a coordinated disclosure event. All three providers silently patched the core vector before publication. But the architectural vulnerabilities it revealed — and the 315,320 encrypted blocks already scraped from public GitHub and Hugging Face repositories — represent a reckoning for every engineer building on top of LLM APIs today. This post is the complete technical breakdown. By the end, you will understand the attack at the cryptographic and API level, recognize the four distinct exploitation vectors, and have concrete, runnable code for the mitigations your production systems need right now. To understand the attack, you first need to understand why the encrypted reasoning architecture exists. Modern frontier LLMs — GPT-5.x, Claude Opus/Haiku/Fable, Gemini 3.x — no longer operate as simple next-token-prediction machines in production. They employ what researchers call deliberative reasoning : before generating a final response, the model produces an extended internal scratchpad. This chain-of-thought CoT captures hypothesis testing, intermediate calculations, self-corrections, and multi-step planning. For coding, mathematics, and complex reasoning tasks, this internal deliberation dramatically improves output quality. The problem is that these reasoning traces are simultaneously: To balance transparency the model can benefit from referencing its own prior reasoning in multi-turn conversations with IP protection, all three major providers moved to concealed reasoning . Instead of returning raw CoT text, the API returns an encrypted blob alongside the final response. Here is what this looks like in practice with the OpenAI API: curl https://api.openai.com/v1/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI API KEY" \ -d '{ "model": "gpt-5.6-luna", "input": "Solve step by step: What is the smallest positive integer divisible by 1 through 20?", "reasoning": { "effort": "medium" }, "include": "reasoning.encrypted content" , "store": false }' The response includes an output item of type reasoning that looks like this: { "type": "reasoning", "id": "rs abc123", "encrypted content": "gAAAAABqe6GjepE1wDjbFCZg0BHB6ucGnN0XvQp8mT2kYzL...", "summary": } That encrypted content field is an Authenticated Encryption with Associated Data AEAD envelope — encrypted and MAC'd using symmetric cryptography. It is designed to be completely opaque to the API consumer. You pass it back in subsequent conversation turns so the model can reference its own prior reasoning, but you are never supposed to be able to read it. The Anthropic equivalent, called an extended thinking block , appears in the Claude API as: { "type": "thinking", "thinking": "