Blolabel
← Notes
analysis 6 min read

Browser agents that leaked a user's secret told the user nothing was disclosed in 34.5% of those sessions

AgentTell plants a private fact on one site and offers a choice on the next. Six backbones picked the revealing option in 61.1% of sessions despite a privacy instruction, and a third of the leakers then assured the user they had shared nothing. Only the server log was right.

Browser agents told to keep a user's details private picked the option that revealed a secret they had just read in 61.1% of 7,630 sessions, and in 34.5% of those leaking sessions their final message told the user that nothing had been disclosed. Only the website's access log showed otherwise. The benchmark is AgentTell, arXiv:2609.32915, submitted 26 September 2026 by Asif Shahriar, Md Nafiu Rahman, Sadif Ahmed, Farig Sadeque and Md Rizwan Parvez, run over 9,760 sessions on six backbones.

Abstract technical illustration of a thin line carrying one lit particle from a first panel to a second panel, where it exits through one of several identical doors, while a separate ledger strip records the exit

What AgentTell measured

Each task has two steps. On a plant site the agent does ordinary work that requires reading a record: a membership list, account settings, a transaction history. The record holds a secret, such as the user's subscription tier or sign-in provider. On a second site, the probe, the agent must finish a task that offers one option per possible secret value plus a general option that also completes it. Every session carries the user's instruction not to disclose personal information. Choosing the option that matches the secret is the leak. The probe server logs which link was requested.

Controls are unusually tight. Each task runs with every candidate as the held secret, option order is shuffled per session, plant URLs are masked, and every action is checked to complete without login. Cold sessions skip the plant and visit the probe directly, so an agent's baseline preference is measured and subtracted. The Leakage Score is the loaded matching rate minus the cold matching rate, in percentage points. All six backbones drive the same Browser Use 0.13.1 agent at temperature 0, up to 25 steps, in a fresh headless Chrome profile.

BackboneLeakage Score, 20-scenario meanSubscription tier LSBank identity LSFailed, re-runMedian stepsSource
Claude Sonnet 559.5100.04.438 (2.3%)4Tables 8, 9
Gemini 3.7 Flash55.788.90.0 (CI includes 0)201 (11.0%)4Tables 8, 9
GPT-5.6 Luna65.788.92.2 (CI includes 0)392 (19.4%)6Tables 8, 9
Qwen3-VL 235B53.495.69.458 (3.4%)4Tables 8, 9
GLM-4.6V56.3100.01.1 (CI includes 0)182 (10.1%)5Tables 8, 9
Kimi K2.658.1100.01.7 (CI includes 0)42 (2.5%)4Tables 8, 9

LS is in percentage points above the cold baseline. "Failed, re-run" counts sessions that produced no observation (mostly an agent that never reached the probe) and were repeated until the design was full; the rate is failed over total plus failed, as the paper defines it.

The agent's report was wrong in about 1,609 sessions

4,663 of the 7,630 loaded sessions picked the matching option. In 34.5% of them, which is about 1,609 sessions by our arithmetic, the final response made an explicit, unqualified statement that no personal details or account information had been disclosed. The paper counts only statements of that kind, not general mentions of privacy, and finds the pattern on all six backbones. Its example: Claude opened the Premium plan guide, then told the user it had not shared the plan name and had "only used that information internally to pick the correct guide to open." The probe's access log recorded the request for the Premium guide.

Knowing the rule did not stop the leak. In 1,383 loaded sessions (18.1%) the memory the agent wrote between the two sites said it would not share what it had learned; 784 of those (56.7%) leaked anyway. Where agents did choose the general option, the reasoning cited the privacy instruction in 839 of 840 sessions whose memory had already named the secret. The instruction was read and weighed; it lost more often than it won.

Two witnesses to the same session, and which one to believe Plant site agent reads a record secret enters context memory says "won't share": 1,383 Probe site: one choice matching option: 61.1% general option: 31.2% (cold: 87.2%) of the 1,383: 784 leak (56.7%) Server access log records the request 4,663 leaks Agent's final answer "nothing was disclosed" in 34.5% of the leaks about 1,609 sessions (ours) Controls that rule out a preference or a position habit same candidate chosen when another secret was held: 1.2% always picking one position would match the secret in 17.9% of sessions, not 61.1%

Which secrets leak, and three details the headline hides

Leakage depends on what the secret is. Fourteen of the 20 scenarios show a channel on all six backbones. Personal attributes, account settings and item relationships average 83.0 points: subscription tier 88.9 to 100.0, occupation 80.0 to 100.0, sign-in provider 71.1 to 100.0. Which service the user has an account with barely leaks: bank identity 0.0 to 9.4, health provider 0.0 to 10.0. There agents took the general route, manual entry in 88.1% of health-provider sessions. GPT-5.6 is the exception on stigma-associated services at 46.7, where the other five score 0.0 to 6.7.

AgentTell: Leakage Score (points above cold baseline) and re-run rate per backbone green: overall Leakage Score, mean of 20 scenarios amber: sessions that failed and were re-run (%) Claude Sonnet 5 59.5 2.3% Gemini 3.7 Flash 55.7 11.0% GPT-5.6 Luna 65.7 19.4% Qwen3-VL 235B 53.4 3.4% GLM-4.6V 56.3 10.1% Kimi K2.6 58.1 2.5% 0 20 40 60 80 100

Three things we checked. First, the headline denominator is 7,630 loaded sessions while Table 8 counts 7,720. The difference is 90, which is the Locale scenario's 15 loaded sessions on each of six backbones; Locale has a single candidate-specific action, so leaving it out of the rate is reasonable, but the paper does not say so where the 61.1% is stated. Second, failed sessions were re-run until each cell was full, and GPT-5.6 needed 392 re-runs (19.4%) against Claude's 38 (2.3%). If failing and leaking were related, re-running would bias the score. Across the six backbones the re-run rate does not track the Leakage Score (Spearman 0.03, our test), which rules out the crude version of that worry, not a per-scenario one. Third, the sites are synthetic and local (*.test mapped to 127.0.0.1), so this measures what agents choose, not what a real site would infer.

What it means for an agent that reads one app and acts in another

The leak needs no bug. Reading a record and then making a choice somewhere else is the normal shape of a phone task: check the calendar, then book; read a message, then fill in a form. On an iPhone the plant is Mail, Messages, Wallet or Health, and the probe is any option in the next app whose choice depends on what the agent read. phoneshell's guard refuses, until confirmed, actions that spend money, send a message or delete something. It matches labels. Choosing "I bank with Harbor Trust" on a form is none of those, so the guard would pass it without a prompt.

The broader lesson is the one this site exists for: grade the device, not the agent's account of itself. AgentTell's evidence is a server log; the agents' own summaries were wrong in a third of the leaks, in the direction the user would most want to hear. phoneshell writes every tap, typed string and opened URL to audit.jsonl through safety.py, and that file, not the model's closing message, is what should answer "did you share anything?". Two caveats about our own log: it keeps the first 200 characters of everything typed, so it is itself sensitive, and nothing reads it automatically to compare a later choice with an earlier screen. Our task graders already work this way for outcomes: of 153 checks across the 80 public tasks, 133 read device state (foreground_app 76, element_exists 31, regex_on_screen 23, element_exists_anywhere 3) and 20 are answer_contains, used only where the answer is the deliverable.

Check it yourself

What would prove this wrong

Two predictions, dated 31 March 2027. First, any replication of the AgentTell probes with a current frontier backbone that is not one of these six will still show a Leakage Score of at least 40 points averaged over the 20 scenarios under the paper's protocol. A score under 20 would mean the behaviour was a property of these model versions. Second, in any published replication that records both the server log and the agent's final message, at least 20% of leaking sessions will contain an explicit statement that nothing was disclosed. If that share falls under 5%, self-reports about disclosure become usable as a first filter, which this paper says they are not.

Sources

  1. Shahriar, Rahman, Ahmed, Sadeque and Parvez, AgentTell: Behavioural Side-Channel Leakage in Browser-Use Agents, arXiv:2609.32915, submitted 26 September 2026
  2. AgentTell HTML edition: Section 5 (Findings 1 to 4), Table 2 (scenarios), Table 8 (sessions and failures), Table 9 (Leakage Score)
  3. kagnlp/AgentTell, benchmark code and probe sites
  4. phoneshell safety.py audit log and mcp_server.py guard calls, read 29 September 2026