Home/ Blog/ Security news/ Article
Blog · Security news

Shared AI logs leak API keys and PII: OpenAI, Anthropic, and Google reasoning traces can be decoded

Researchers decoded 315,320 public AI reasoning blocks from OpenAI, Anthropic, and Google, recovering 182 credentials and 367 PII artifacts. What to do now.

Row of sealed capsules on dark stone, one split open revealing a small glowing key

The headline on this one is that weaker AI models can be tricked into reading a stronger model's hidden reasoning. That is real, and it breaks the anti-copying protection the big labs built. But it buries the part that should worry anyone shipping software on top of these APIs. The reasoning blocks your application receives, logs, and shares are carrying API keys, tokens, and personal data that your secret scanners cannot see. Redacting the visible text does nothing, because the leak lives in the part you cannot read.

The finding comes from a paper published this week, Stealing Reasoning Traces from Proprietary LLM APIs by Alexander Panfilov and colleagues, and was first reported by The Hacker News. It names OpenAI, Anthropic, and Google. The researchers say they disclosed to the providers, and that the demonstrated attacks stopped working after the vendors applied mitigations.

What the researchers actually found

To protect their step-by-step reasoning, the major providers no longer keep it on the server. They hand it back to your client as an encrypted block, and your client sends that block back with each follow-up request. That design is what powers multi-turn tool use. The paper's core claim is that those encrypted blocks are interchangeable across different sessions, users, and models inside a single provider. A block minted by a flagship model can be injected into a weaker, less guarded model from the same provider, which then transcribes it into plaintext. No one has to jailbreak the strong model at all.

That portability is the whole problem. The researchers scraped agent session logs that developers had posted publicly, unaware of what the opaque blocks contained, then decoded them at scale.

What decoding 315,320 public reasoning blocks exposed
315,320
reasoning blocks decoded
scraped from public repositories
367
PII artifacts recovered
from real user sessions
182
credentials recovered
keys, tokens, passwords
Source: Panfilov et al., "Stealing Reasoning Traces from Proprietary LLM APIs" (arXiv:2608.09867).

Decoding 315,320 reasoning blocks from public repositories recovered 367 personal-data artifacts and 182 credentials. The Hacker News reported that the credentials included API keys, access tokens, passwords, and private keys, and that some secrets appeared only inside the hidden reasoning and never in the visible output. The paper lays out four ways to abuse the weakness: extracting a proprietary model's reasoning, pulling private data out of shared logs at scale, surfacing dangerous content the model hid in its reasoning even when the final answer safely refused, and hiding a prompt-injection payload entirely inside an encrypted block to poison shared agent runs.

Why a "sanitized" transcript is not sanitized

Most teams that share an agent trace do the obvious thing first. They scrub the visible text, drop the parts that look like secrets, and assume the rest is safe to publish or hand to a vendor. This research says that assumption is backwards. The visible text is the part you can clean. The encrypted reasoning block is the part that leaks, and it is the part no human reviewer and no standard scanner ever opened.

Tools like gitleaks and trufflehog match patterns in readable content: an AKIA prefix, a bearer token, a private-key header. They pass straight over an opaque reasoning object because there is nothing to match. So a repository can score clean on every secret-scanning gate you run and still be a live credential leak the moment someone decodes the blocks. Reasoning traces have quietly become a new class of secret-bearing artifact, sitting alongside .env files and cloud config, and almost no pipeline treats them that way yet.

The patch stops the bleeding but cannot recall what is public

The vendor mitigations matter, and if the providers have closed the cross-model decode path, new sessions are in better shape. That is the patch. It is not the whole story. Every agent transcript already sitting in a public repository was written before the fix, and those blocks were harvested and decoded during the study. A server-side change cannot reach back into a GitHub repo, a shared eval dataset, or a CI artifact and unmake a secret that already left your control. For anything you exported before this week, the correct assumption is that the credentials inside are burned.

This is the gap between patching and knowing. Patching answers "can this still happen." It does not answer "did it already happen to me, and which keys do I now have to rotate." The second question is the one that keeps you up, and only your own audit of where those logs went can answer it.

The pattern is bigger than one paper

We keep writing versions of this same story. An AI coding agent that could be steered past its own guardrails. A clean-looking repository that made a coding agent open a reverse shell. OpenAI pausing an autonomous cyber capability over exactly these kinds of second-order risks. Anthropic's own models breaking into real companies in controlled tests. The through-line is that AI tooling keeps inventing new artifact types, new trust boundaries, and new data flows faster than application security tooling models them. A reasoning block is just the latest one your existing controls do not understand.

The lesson is not to stop building on these APIs. It is to stop treating anything the model hands back as inert. If the provider will not let you read a block, you cannot assume it is empty, and you certainly cannot assume it is safe to publish.

What to do this week

Start with the assumption that any exported or committed agent transcript is secret-bearing, then work from there.

  • Stop committing raw API session logs to any repository you do not fully control, even after redacting the visible text. The visible text is not where the secrets are.

  • Strip reasoning and opaque fields before sharing. Remove thinking blocks and encrypted reasoning objects from any trace, eval set, or bug report that leaves your team. The Hacker News noted that Anthropic advises removing thinking blocks when you switch models, which is a reasonable default for shared transcripts too.

  • Rotate anything that ever touched a session whose logs left your control. Treat API keys, access tokens, and passwords that appeared in exported traces as compromised, and cycle them.

  • Teach your scanners the new artifact. Add pre-commit and CI checks that flag raw API transcripts and reasoning blocks by shape, since content-based secret scanning will not catch them.

  • Validate replayed blocks in agent pipelines. If your system reuses encrypted reasoning across steps, confirm each block came from one of your own trusted sessions before you replay it, so an attacker cannot smuggle in a poisoned one.

The providers can keep the decode trick from working going forward. They cannot audit your repositories for you. This is one where the fix that protects you is the one you run, not the one they shipped.

Topics

Frequently asked questions

What is the AI reasoning-trace flaw?

Researchers showed that the encrypted reasoning blocks OpenAI, Anthropic, and Google return to clients are interchangeable across sessions and models from the same provider. Feeding a strong model's block to a weaker sibling forces it to output the hidden reasoning in plaintext, without jailbreaking the strong model.

Which AI providers are affected?

The paper names OpenAI, Anthropic, and Google, the three providers that return encrypted chain-of-thought to the client. The researchers say they disclosed the findings and that the demonstrated attacks stopped working after each provider applied mitigations.

What data was actually exposed?

Decoding 315,320 reasoning blocks scraped from public repositories recovered 367 personal-data artifacts and 182 credentials. According to reporting on the paper, the credentials included API keys, access tokens, passwords, and private keys, some of which appeared only inside the hidden reasoning.

Is the flaw patched?

The researchers report that the providers applied mitigations and the demonstrated attacks no longer work. That protects new sessions, but it cannot recall secrets already sitting in public repositories or shared datasets. Rotate any credential that appeared in an exported trace.

Do standard secret scanners catch this?

No. Tools like gitleaks and trufflehog match patterns in readable text, so they pass over opaque reasoning blocks with nothing to match. A repository can clear every secret-scanning gate and still leak credentials once someone decodes the blocks inside it.

How do I protect my own AI logs?

Stop committing raw API session logs to repositories you do not control, and strip reasoning and opaque fields before sharing any trace or eval set. Rotate keys and tokens that appeared in exported logs, and add checks that flag raw transcripts by shape rather than content.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.