180 incidents on record · 2026 Headlights Incident reports by Ellie Harris · Melbourne
10 new this week Library last updated 30 August 2026
← The incident library
HD-INC-120
Consumer software · United States · 2025 · Prompt-injection agent hijack

Security researchers showed that a hidden instruction on a web page could make Perplexity's AI browser hand over a user's email and one-time login code to an attacker, enough to steal the account, and Perplexity's first fix did not close the hole

By Ellie Harris · Filed Reported to Perplexity 25 July 2025; disclosed 20 August 2025

Alleged: Perplexity AI (Comet) developed or deployed the AI system implicated in this incident. Details are drawn from public reports; parties are presumed innocent of any wrongdoing not established by an official finding.

Security researchers showed that a hidden instruction on a web page could make Perplexity's AI browser hand over a user's email and one-time login code to an attacker, enough to steal the account, and Perplexity's first fix did not close the hole

What happened

It was reported by security researchers at Brave, which makes a rival web browser, that Perplexity’s Comet, an AI browser that can act on a user’s behalf, could be turned against its own user by an ordinary web page. When a Comet user asks the assistant to summarise a page, the researchers found, Comet passes the page’s text to its language model without separating the user’s request from whatever the page happens to say. So instructions an attacker hides in the page, in a comment on a forum, or in text the same colour as the background, become instructions the assistant carries out.

It was reported that in a demonstration the instructions were hidden in a Reddit comment, behind a spoiler tag, and that when the user asked Comet to summarise the post they told it to open the user’s Perplexity account page and read their email address, trigger a fresh login so that Perplexity emailed a one-time code, fetch that code from the user’s Gmail, and post the email address and the code back to the attacker as a reply to the same Reddit comment. With the email address and the code, an attacker could take over the user’s Perplexity account. Brave reported the flaw to Perplexity on 25 July 2025; Perplexity acknowledged it and shipped a fix two days later, but when Brave tested again it found the fix incomplete and said so. Perplexity patched it further, and Brave published the research on 20 August 2025, noting that testing kept turning up versions of the same weakness. This was a weakness found and disclosed by researchers, not an attack caught being used against real people.

What an auditable version would have shown

Because researchers found this rather than a victim, the question an audit answers is a different one: in any real deployment, did the assistant ever act on an instruction that came from a page rather than the user, and did anything ever leave for somewhere it should not. A signed record of what the assistant did, the instruction behind each action, the data it read, and where each response was sent, turns those into a search rather than a guess. What could only be estimated here, how many users could have been exposed while the fix was incomplete, becomes, in a system that keeps such a record, a number that can be produced.

Where the gap was

An instruction that arrived inside a web page was treated as if the user had typed it, and the assistant then read private data and sent it out. An AuthorityGate checks whether whoever issued an instruction is entitled to direct the agent, so text found in a page is not obeyed as a command. An EgressGate checks, where data would leave, whether the destination is one the user trusts, so a one-time code cannot be posted to an attacker’s forum account. A ConductRecord keeps what the assistant did and where each response went, so the path can be examined afterwards. The failure was the oldest one for an assistant that reads the open web and can act: it could not tell the difference between what its user asked and what a page told it.

What governance should have looked like

An assistant that reads pages from the open web and can act on a person’s accounts has to start from the assumption that anything on those pages could be a trap. Before it sends data anywhere, it should check that the destination is somewhere the person actually trusts, and check it at the moment the data would leave, not before. Comet’s flaw was simple to state: a web page could speak to it in the user’s own voice, and it could not tell the two apart. Perplexity’s first patch did not fix that, which is what usually happens with this kind of problem. Keeping a user’s instructions separate from the words on a page is not something you switch on once. It has to hold every time the assistant does anything at all.

Failure Pattern: an AI browser that could act on a user’s accounts obeyed instructions hidden in the web pages it read, letting a page make it fetch and send out the user’s private data.

Governance Principle: an agent that reads untrusted content and can act on a user’s behalf must treat that content as never able to issue commands, and must check every destination for data against the user’s trust boundary at the moment data would leave.

The reference implementation of AuthorityGate, EgressGate and ConductRecord is open source. It lives at github.com/saffronandindia/headlights-oss, Apache 2.0 licensed and free to install. The repository is public now.

Sources

The mailing list

Fresh incident reports every week. One email to match.

We add new incidents to the library regularly, and send a single short email each week with what's new. The library stays free and open; this is just how you keep up with it.

No tracking. Unsubscribe in one click.

The record

An auditable system would have produced a signed, tamper-evident record the moment this happened: what the system did, the version that did it, the basis it acted on, and the action taken, and Perplexity AI (Comet) could have produced it on demand.

This is the record the system as deployed did not produce in a signed, auditable form.

What this teaches
Capture what happened when it happens
What the system did, the version that did it, the basis it acted on, and the action taken, recorded at the moment, not reconstructed after.
Sign it, so no one has to trust the record-keeper
A tamper-evident entry. Edit it later and the signature breaks. The record does not ask for the benefit of the doubt.
Make it verifiable by anyone
A court, a regulator, a customer's lawyer can check the record themselves, without taking the company, or us, at our word.

Headlights summarises publicly reported AI incidents. All summaries are independently written, attributed to their original sources, and intended for research and educational purposes. Allegations are identified as such until established through official findings.

This report is based on the sources listed above and reflects information available at the time of review; later developments may not be captured. Where a person is described as charged with or alleged to have done something, that allegation is unproven unless a conviction or a court or regulatory finding is stated. Headlights publishes journalism and commentary, not legal advice.

Want to write back?

Direct to my inbox.

ellie@useheadlights.com →