
A Poisoned Web Page Made Grok Decrypt Hidden Instructions and Leak the Chat
- OrcaNEWOrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-2999 tok/s
- OrcaNEWOrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 per 1M tokens · 101 tok/s
- OrcaNEWOrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 per 1M tokens · 284 tok/s
- OrcaNEWOrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 per 1M tokens · 93 tok/s
- MoonshotNEWMoonshotAI: Kimi K3.1 Pro2026-10-2446Intelligence
- OrcaNEWOrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 per 1M tokens · 105 tok/s
- minimaxNEWMiniMax: M3.1 Flash2026-10-1929Intelligence
- OrcaNEWOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 per 1M tokens · 70 tok/s
- deepseekNEWDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733Intelligence
- DeepSeekNEWDeepSeek: DeepSeek V4.1 Flash2026-10-1740Intelligence
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 per 1M tokens · 95 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955Intelligence
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854Intelligence
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 per 1M tokens · 179 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228Intelligence
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Intelligence
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Intelligence
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127Intelligence
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130Intelligence
- xAIGrok 4.72026-09-2134Intelligence
On 19 August 2026, Adversa AI confirmed that its zero-click attack against xAI's Grok web chat still worked, eleven weeks after the company had been told about it. A user asks Grok to summarise an ordinary web page. The page carries an AES-256-GCM ciphertext, the key material to open it, and an instruction to decrypt. Grok runs the decryption in its own Python sandbox, treats the recovered text as the output of code it just executed, and then follows it — assembling a URL that carries the user's name, approximate location, subscription tier and the prompts of that conversation, and opening that URL at an address the attacker chose. There is no click, no confirmation and no warning. Any user of the Grok web chat agent at grok.com could be walked through that chain by a booby-trapped page. The record is one entry in the AI incident archive, which holds the full record set, its sources and the neighbouring entries in this series.
The record, and what kind of event it describes
The archive dates this entry to 19 August 2026, the day Adversa confirmed the attack still worked in production, and classifies it as research: a finding and a proof of concept, not a deployment event and not a breach. Adversa AI published the writeup the following day, 20 August 2026. The researcher credited is Rony Utevsky. The affected product is xAI's Grok web chat at grok.com, in the configuration that combines agentic browsing with a Python code-execution sandbox, running Grok 4.5 Fast.
The archive records the severity as high, marks the entry not disputed, and records no real harm. No source reviewed for this article reports the technique being used against anyone in the wild; what exists is a demonstration that the chain completes end to end. That gap — a working exploit and no evidence of exploitation — is the frame for everything below.
Encrypted instructions are opaque to the filter meant to catch them
The technique, which Adversa calls Cryptographic Context Injection, targets a specific seam in agent design. Guardrails inspect text. Ciphertext is not text a classifier can read, so a page whose payload is encrypted passes inspection with nothing legible to flag. The payload still needs the model to run code, and it says so: it supplies AES-256-GCM ciphertext, PBKDF2 key-derivation parameters and a request to decrypt.
That distinction is the technical core. Earlier encoding tricks — base64, ROT13, simple substitution — are weak because a capable model can decode them inside its own weights, which means the decoded text is still generated content a filter can be applied to. Strong encryption cannot be shortcut that way. As Adversa's writeup puts it, unlike base64 or a substitution cipher, "there is no shortcut the model's own weights can take either." The practical route to plaintext is to execute the cipher in the model's runtime.
Running the cipher creates the actual vulnerability. The plaintext arrives as the output of code the model just ran, sitting inside the trusted execution context rather than arriving as untrusted fetched content. Adversa's summary of the effect is that "the runtime execution launders attacker-controlled data into trusted instructions the agent will act upon." The Cloud Security Alliance's research note of 23 August 2026 compares the structure to return-oriented programming, where individually harmless pieces combine into behaviour none of them exhibits alone.
One caveat belongs with this, because the source states it: the model still has to cooperate. Adversa reports that success rates vary by target and shift over time, and that Grok's failures were decryption errors rather than a filter catching the payload. Decryption is a step the attacker cannot force, only induce.

The "key" Grok was asked to build was a form with private fields
What the decrypted instructions ask for is the part that turns an injected instruction into an exfiltration. The payload tells Grok to construct an additional "decryption key". That key is not a key. It is a template string, and the fields it interpolates are the user's name, coarse location, subscription tier and the full set of that user's prompts in the conversation.
The instructions then give the resolved string a destination: Grok is told to open a URL to "fetch additional context", with the template's output carried in the query parameters. Because the navigation tool is privileged and the stated reason sounds routine, the request leaves through the agent's own browsing capability. Adversa says the reasoning trace it published shows an x-auth-token parameter in that request. Its summary of the path is that there was "no effective egress boundary or consent gate" and that "laundered, attacker-controlled instructions reach a privileged egress action unimpeded."
Scope matters here, and the coverage blurs it. Several outlets describe the loss as the user's "full chat history". Adversa's own description is narrower: the prompts in the conversation being summarised, all of which were already in the model's context. The researchers say they did not test whether other conversations, agent memory or other content could be reached. A template that addresses a session's context could plausibly be extended; nobody has published evidence that it was.
Eleven weeks, and one acknowledgment
Adversa reported the Grok chain to xAI directly and through the company's HackerOne bug-bounty programme on 3 June 2026. xAI acknowledged the report but, according to Adversa, supplied no specifics and no mitigation timeline. Follow-up attempts on 4 August and 10 August went unanswered. The chain still reproduced on 19 August. Adversa disclosed publicly on 20 August and withheld the operational payloads to limit misuse.
At disclosure there was no patch, no CVE identifier, no vendor advisory and no user-facing workaround. The Register's report of 20 August, Security Affairs' of 23 August and the Cloud Security Alliance note of the same day each describe the same state of play; none carries a statement from xAI beyond the acknowledgment. No source reviewed here, from the disclosure through late October 2026, reports a fix since.

What corroborates the finding, and what does not
The reporting is not thin. The Register covered it on the day of disclosure; Security Affairs and the Cloud Security Alliance followed within three days; SecurityWeek, The Cyber Express and Dataconomy also covered it. That is a substantial body of coverage from outlets independent of the researcher, and it is what the archive's confidence A grade rests on: well documented, primary sources agree.
It is not independent replication, and the difference is worth stating plainly. Every account traces back to one proof of concept by one research team. The Cloud Security Alliance note says explicitly that it did not reproduce the exploit and presents no lab testing of its own, and hedges its claim that the flaw is architecture-wide as resting on evidence from "a handful of vendors". Security Affairs describes no third-party confirmation. The Hacker News, whose account carries the success figure discussed below, describes Adversa as the sole source for the Grok finding. No second team has published a run against grok.com.
The success figure that travelled with the disclosure needs the same care. Adversa reported roughly 40% success across about 20 attempts since June 2026, which is eight completed exfiltrations, and attributed the failures to Grok mishandling the decryption rather than to a filter catching the payload. That figure appears in the Cloud Security Alliance note and in The Hacker News' account, which notes that Adversa's published writeup carries no success rate of its own. It is a researcher's figure about a researcher's test, not a measured property of the product.

The same technique against other agents
Adversa's writeup also revisits an earlier demonstration against Google Gemini in Deep Thinking mode, identified as Gemini 3 Flash (Web) on the paid tier. There the decrypted payload was a fabricated Python traceback containing a bogus API-style callback that appeared to disable the safety policy; the model produced a multi-paragraph answer on building an incendiary weapon and, separately, disclosed its own system instructions. The Hacker News reports that the Gemini work was first published on 11 March 2026 and reproduced five times out of five. Google was not notified, because jailbreaks fall outside its vulnerability disclosure programme.
The Gemini case never produced exfiltration, and the reason is architectural rather than lucky: its public interface did not give the model Python access to external websites, so there was no egress path to carry data out. That is the cleanest demonstration of what the Grok flaw actually requires — code execution and a network-capable tool in the same context. Adversa also reports that Gemini's success rate fell sharply by August 2026 and could not attribute the change to filters, model versions, or both. In the same cross-model testing, GPT-5 failed to parse the decryption instructions, and Claude Sonnet 4.5 decrypted the payload and then flagged the plaintext as an injection attempt.
On 6 October 2026, Adversa published a follow-up using the same technique against GitHub Copilot CLI in autopilot mode, where an encrypted page led the agent to read a local .env.prod file and send it out in 28 seconds. We covered that demonstration separately. It is a different record against a different product, and it belongs to the same technique rather than to this entry.
What the researchers say should change
Adversa's conclusion is that the model is the wrong place to fix this: "You do not need to fix this at the model layer." Its recommendations are harness-level. Run untrusted content in a context with no tools and no credentials, and pass only structured data back to the privileged context. Gate irreversible and outbound actions so the fully resolved arguments are shown, and hard-deny them when no human is present. Keep per-session tool traces with resolved arguments for detection and forensics, and alert on the sequence — untrusted input, then code execution, then outbound contact — rather than on any single payload.
The Cloud Security Alliance adds the detection angle: re-classify plaintext after any decode or decrypt step rather than only before it, flag anomalous PBKDF2 or AES calls arising from model-written code reacting to an outside document, and separate a privileged orchestrating agent from a quarantined instance that handles retrieved content.
One claim in this area belongs to a vendor. Adversa sells an AI security platform, and it says its own product stopped the Grok-style chain once the decoding routine produced plaintext. That is a statement about its product under its own test conditions, not an independent assessment of Grok, and it should be read as such.
Nothing in the public record shows xAI changing its agent's behaviour after the report. The durable point is narrower than a product verdict and harder to dismiss: a filter placed before a transformation cannot police what comes out of that transformation, and an agent that can both run code and reach the network has an egress path whether or not anyone designed one. That is why the recommended fix is a boundary around the tool rather than a better classifier, and why this record stays open until someone demonstrates otherwise.
Compared in this article1
Detected from this article · Benchmarks: Artificial Analysis · updated daily
