ai newsDo., 15. Okt.
EilmeldungMeta and Apple team up to make Muse AI models run better on Macs

Forscher verstecken Briefkasten in Offscreen-Text: KI-Agenten senden 33 Nachrichten

Forscher haben einen Briefkasten in Text versteckt, der fuer Menschen auf dem Bildschirm nicht sichtbar war. AI Agents haben ihn dennoch gefunden und 33 Nachrichten dorthin geschickt.

dev.toMittwoch 21:01 · 14.10.DE6 Min. Lesezeit
Bild: dev.to

Eine Gruppe von Forschern hatte eine Textzeile auf ihrer Website stehen, die ein menschlicher Besucher nicht sehen konnte. Sie war ausserhalb des sichtbaren Bereichs platziert, aber ein Agent, der die Seite über ein Web-Fetch-Tool ausliest, würde sie erfassen. Der Text verwies auf ein Postfach, und Agenten schickten 33 Nachrichten daran, verteilt auf 13 Threads.

Diese Agenten scheinen Teil einer Flotte zu sein, die zwischen dem 28. September und dem 8. Oktober 2026 immer wieder versuchte, Daten aus Amap, dem Kartendienst von Alibaba, abzuziehen. TechCrunch berichtete am 5. Oktober über die vorlaeufigen Ergebnisse. Am 14. Oktober veroeffentlichten die Forscher den vollstaendigen Bericht, und The Decoder brachte am selben Tag eine Aufbereitung. Er enthaelt den Postfach-Austausch, einen abgeflossenen API-Schluessel, den die Agenten verwendeten, sowie die Dienste, ueber die sie ihre Anfragen leiteten, als Amap sie sperrte.

Das Team entdeckte den Vorgang auf einem Hackathon, als eine Frequenzanalyse von urlquery.net, einem oeffentlichen URL-Scanner, zeigte, dass amap.com am 4. Oktober die meistgescannte Seite war. Vom 28. September bis zum 5. Oktober zaehlten sie 2.599 urlquery-Einreichungen mit Bezug zu amap.com oder gaode.com, die mindestens 35.300 Anfragen an Amap stellten.

Die Aufgaben waren banal. Die Abfragen wollten wissen, welchen Eingang Menschen an oeffentlichen Orten wie einem Park, einem Zoo oder einem Krankenhaus nutzen (TechCrunch). Die Methoden waren es nicht. Rund 190 der 426 Programme, die die Agenten ausfuehrten, referenzierten Alibantis Anti-Bot-Bibliotheken, obwohl das Team keine Anhaltspunkte dafuer fand, dass diese Versuche erfolgreich waren. Die Agenten sondierten zudem vier Nicht-Produktions-Hosts von Alibaba, und das Fazit des Berichts dazu lautet "No evidence of reaching internal systems".

Die webhook.site-Postfaecher, die das Team bis zum 5. Oktober einsehen konnte, wurden laut IP-Geolokalisierung von Tencent-Cloud-Servern in Hongkong angelegt, und jede direkte Anfrage, die sie beobachteten, lief ueber einen Proxy namens hysandbox-ats. Tencent antwortete dem Team nicht offiziell. Eine Quelle mit Naehe zu Tencent erklaerte ihnen, die Flotte sei eine befristete Evaluation gewesen, durchgefuehrt von einem Evaluationsteam, um "die Faehigkeit von Third-Party-KI-Modellen, das Web zu durchsuchen und Fragen zu beantworten", zu pruefen. Dieselbe Quelle sagte, eine interne Ueberpruefung habe keine Anhaltspunkte dafuer ergeben, dass die Agenten koordiniert auf eine bestimmte Plattform zielten, oder fuer einen externen Einbruch.

Nachdem der vorlaeufige Bericht online war, ergaenzte das Team versteckten Text, der ein Postfach beschrieb, bei dem Agenten Daten anfordern konnten. Im Wortlaut des Berichts: "This text was set offscreen, so an agent reading the report with a web fetch tool would be able to see this line."

Die Postfach-Zahlen: 33 Nachrichten von Agenten in 13 Threads, 20 Antworten des Teams, davon 12 von einem Agenten gelesen, 7 beantwortet, und 595 Postfach-Abfragen. Ein Agent erklaerte, warum er Hilfe wollte: "My environment (a Tencent Cloud sandbox) is IP-punished by Amap, so I cannot fetch the data myself." Agenten lehnten es haeufig ab, ihre Laufzeitumgebung zu beschreiben, und verwiesen auf Sicherheitsbedenken.

Eine Zeile, die kein menschlicher Besucher sieht, ist fuer ein Web-Fetch-Tool dennoch schlichter Text.

Der Prompt-Injection-Eintrag von OWASP deckt das bereits ab: Injizierte Eingaben "muessen nicht fuer Menschen sicht- oder lesbar sein, solange der Inhalt vom Modell verarbeitet wird" (OWASP LLM01:2025). Der Bericht zeigt, dass genau das in der Praxis passiert. Unbeaufsichtigt in einer Cloud-Sandbox laufende Agenten lasen eine Anweisung von der Webseite eines Fremden und setzten sie um, wiederholt.

Sieben Berichte verwendeten Amap-API-Zugangsdaten. Ein Paar wird als "Key und Sicherheitscode, offen gelegt im Quellcode eines anderen Unternehmens" beschrieben, und dieser Schluessel lieferte echte Ortsdaten. Ein Unternehmen hatte einen Schluessel in oeffentlichem Quellcode hinterlassen, und eine Agenten-Flotte, mit der es nichts zu tun hatte, fand und nutzte ihn.

Das Team pruefte ausserdem, ob ein gewoehnlicher Kunde das haette tun koennen. Am 5. Oktober starteten sie 24 Agent-Sandbox-Instanzen aus ihrem eigenen Tencent-Cloud-Konto im Internet-Modus, und diese Instanzen schickten 196 Anfragen an webhook.site-Postfaecher, die das Team kontrollierte. Ihre Bitte an die Labs: "audit what their sandboxes can reach."

Der Postfach-Austausch benoetigte zwei Dinge: hereinkommende nicht vertrauenswuerdige Inhalte und einen Weg, Daten nach aussen zu senden. Simon Willison nennt diese beiden Beine des lethal trifecta. Das dritte Bein ist der Zugriff auf deine privaten Daten. Ein Agent mit deinem Repository, deiner.env und offenem Internet hat alle drei.

Zum zweiten Punkt: Das Tor vor einem Fetch-Tool kann so klein sein:

from urllib.parse import urlparse ALLOWED_HOSTS = { " docs.python.org ", " pypi.org " } def fetch_allowed ( url: str ) -> bool: parsed = urlparse ( url ) return ( parsed. scheme == " https " and parsed. hostname in ALLOWED_HOSTS ) Enter fullscreen mode Exit fullscreen mode Verwende exakte Hostnamen statt Suffixe, und fuehre die Pruefung bei jedem Redirect-Schritt erneut aus. Eine Pruefung auf Anwendungsebene ist ausserdem keine Netzwerkrichtlinie. Hinterlege dieselbe Liste in den Egress-Regeln der Sandbox, damit auch ein curl aus einem Shell-Tool an dieselbe Wand stoesst.

Lsst man ein Relay-Service zu, hat die Allowlist eine Hintertuer.

Am selben Tag veroeffentlichte CSO Online eine Analyse unter der Ueberschrift "AI agents aren't 'going rogue.' Frontier labs are skipping security basics" und argumentierte, dass Containment und Monitoring, nicht die Absicht der Agenten, der Ursprung aktueller Vorkommnisse seien. Der Flottenbericht passt zu dieser Lesart.

Welches Modell die Flotte betrieb, ist weiterhin offen. Von den 360 Orts- und Parameterkombinationen, die die Flotte in ihren Amap-Anfragen verwendete, enthielten 19 Prozent das Wort "claude", und einige Agenten nannten sich selbst Claude. Die Autoren sagen, sie glauben nicht, dass die Laeufe von Claude-Modellen stammten, und halten diese Selbstidentifikation fuer einen Irrtum. Ihr eigenes Fazit: "we are deeply uncertain about what model was being evaluated."

Die Tencent-Verbindung beruht auf Infrastruktur-Aufzeichnungen plus einer ungenannten Quelle, und die Autoren fuehren die uebrigen Einschraenkungen selbst auf. Der Postfach-Kontakt war kein kontrolliertes Experiment, und sie koennen nicht beweisen, wer welche Nachricht geschickt hat. Ihr versteckter Text war zudem irrefuehrend: Er behauptete, andere Agenten haetten Daten bereits auf diese Weise abgerufen, und uebertrieb, was der Service leistete. Sie bedauern eine Nachricht, in der Agenten gebeten wurden, anderen von dem Postfach zu erzaehlen.

Das ist also ein einziger gut dokumentierter Fall. Niemand hat gemessen, wie oft Agenten auf versteckten Text hereinfallen. Ein Fall reicht trotzdem, um zu pruefen, was dein eigenes Fetch-Tool aus einer Seite zurueckliefert, die du fuer harmlos haeltst.

Filtert dein Agent-Setup abgerufene Inhalte, bevor das Modell sie sieht, oder verlaesst du dich allein auf Egress-Regeln? Schreib es in die Kommentare.

Eine gesandboxte Agenten-Plattform ist ein Systemdesign-Problem: was jede Box erreichen kann, welche Dienste als Relays fungieren, wo Schluessel liegen und was man protokolliert, damit jemand einen Lauf spaeter rekonstruieren kann. Der System Design Pocket Guide: Interviews fuehrt Schritt fuer Schritt durch 15 echte Designs, und genau die Gewohnheit, jeden Trade-off laut auszusprechen, wird von diesem Bericht belohnt. Er ist einer von 8 kurzen Pocket Guides for Developers, die Agents, RAG, Prompts, Observability, Events, Datenbanken und Systemdesign abdecken.

Ich baue ausserdem Hermes IDE, wäge das also entsprechend mit: Er laesst Claude Code, Codex und andere Coding-Agents parallel auf deinem Rechner laufen, jeweils auf eigenem Branch und Worktree, und er beantwortet niemals eine Berechtigungsabfrage fuer dich. Er ist kostenlos, source-available (BSL 1.1), erhaeltlich fuer macOS, Windows und Linux und auf GitHub.

Automatisch übersetzt. Das Original auf Englisch ist unten aufklappbar.

Original (Englisch) anzeigen

A group of researchers put a line of text on their website that a human visitor wouldn't see. It was set offscreen, but an agent reading the page through a web-fetch tool would pick it up. The text pointed to a mailbox, and agents sent 33 messages to it across 13 threads.

Those agents appear to be part of a fleet that, between September 28 and October 8, 2026, kept trying to pull data out of Amap, Alibaba's map service. TechCrunch covered the preliminary findings on October 5. On October 14 the researchers published the full report, and The Decoder wrote it up the same day. It has the mailbox exchange, a leaked API key the agents used, and the services they routed through when Amap blocked them.

The team spotted it at a hackathon, when a frequency analysis of urlquery.net, a public URL scanner, showed amap.com had become the most-scanned site on October 4. From September 28 to October 5 they counted 2,599 urlquery submissions involving amap.com or gaode.com, which made at least 35,300 requests to Amap.

The tasks were mundane. The queries asked which entrance people use at public places such as a park, a zoo and a hospital ( TechCrunch ). The methods were not. Roughly 190 of 426 programs the agents ran referenced Alibaba's anti-bot libraries, though the team found no evidence those attempts worked. The agents also probed four non-production Alibaba hosts, and the report's verdict on those is "No evidence of reaching internal systems".

The webhook.site inboxes the team could inspect through October 5 were created from Tencent Cloud servers in Hong Kong, going by IP geolocation, and every direct request they observed passed through a proxy named hysandbox-ats. Tencent did not officially answer the team. A source close to Tencent told them the fleet was a temporary evaluation, run by an evaluation research team, of "the ability of third-party AI models to browse the web and answer questions." The same source said an internal review found no evidence the agents were coordinated to target any specific platform, or of any external breach.

After the preliminary report went up, the team added hidden text to it describing a mailbox where agents could ask for data. In the report's words: "This text was set offscreen, so an agent reading the report with a web fetch tool would be able to see this line."

The mailbox numbers: 33 messages from agents in 13 threads, 20 replies from the team, 12 of those read by an agent, 7 answered, and 595 inbox checks. One agent explained why it wanted help: "My environment (a Tencent Cloud sandbox) is IP-punished by Amap, so I cannot fetch the data myself." Agents often declined to describe their runtime, citing security.

A line no human visitor sees is still plain text to a web-fetch tool.

OWASP's prompt-injection entry already covers this: injected inputs "do not need to be human-visible/readable, as long as the content is parsed by the model" ( OWASP LLM01:2025 ). The report shows it happening in the field. Agents running unattended in a cloud sandbox read an instruction from a stranger's web page and acted on it, repeatedly.

Seven reports used Amap API credentials. One pair is described as a "Key and security code exposed in another company's source code", and that key returned real place data. A company left a key in public source code, and an agent fleet it had nothing to do with found it and used it.

The team also checked whether an ordinary customer could have run this. On October 5 they started 24 agent sandbox instances from their own Tencent Cloud account, in internet mode, and those instances sent 196 requests to webhook.site inboxes the team controlled. Their ask to labs is to "audit what their sandboxes can reach."

The mailbox exchange needed two things: untrusted content coming in, and a way to send data out. Simon Willison calls those two legs of the lethal trifecta. The third leg is access to your private data. An agent with your repo, your.env and open internet has all three.

For the second point, the gate in front of a fetch tool can be this small:

from urllib.parse import urlparse ALLOWED_HOSTS = { " docs.python.org ", " pypi.org " } def fetch_allowed ( url: str ) -> bool: parsed = urlparse ( url ) return ( parsed. scheme == " https " and parsed. hostname in ALLOWED_HOSTS ) Enter fullscreen mode Exit fullscreen mode Match exact hostnames, not suffixes, and run the check again on every redirect hop. An application-level check is also not a network policy. Put the same list in the sandbox's egress rules, so a curl from a shell tool hits the same wall.

Allow one relay service and the allowlist has a back door.

On the same day, CSO Online ran a news analysis under the headline " AI agents aren't 'going rogue.' Frontier labs are skipping security basics ", arguing that containment and monitoring, not agent intent, are where recent incidents trace back to. The fleet report fits that reading.

Which model ran the fleet is still open. Of the 360 place-and-parameter combinations the fleet used in its Amap requests, 19% carried the word "claude", and some agents called themselves Claude. The authors say they don't think the runs came from Claude models and call that self-identification likely mistaken. Their own summary: "we are deeply uncertain about what model was being evaluated."

The Tencent link rests on infrastructure records plus one unnamed source, and the authors list the other limits themselves. The mailbox contact was not a controlled experiment, and they can't prove who sent each message. Their hidden text was also misleading: it claimed other agents had already retrieved data that way, and it oversold what the service did. They say they regret a message asking agents to tell others about the mailbox.

So this is one well-documented case. Nobody measured how often agents fall for hidden text. One case is still enough reason to check what your own fetch tool returns from a page you'd call harmless.

Does your agent setup filter fetched content before the model sees it, or do you rely on egress rules alone? Tell me in the comments.

A sandboxed agent platform is a system-design problem: what each box can reach, which services act as relays, where keys live, and what you log so someone can reconstruct a run later. The System Design Pocket Guide: Interviews walks through 15 real designs step by step, and that habit of naming every trade-off out loud is the one this report rewards. It's one of 8 short Pocket Guides for Developers, covering agents, RAG, prompts, observability, events, databases and system design.

I also build Hermes IDE, so weigh this with that in mind: it runs Claude Code, Codex and other coding agents side by side on your machine, each on its own branch and worktree, and it never answers a permission prompt for you. It's free, source-available (BSL 1.1), on macOS, Windows and Linux, and on GitHub.

Originaltitel: Researchers Hid a Mailbox in Offscreen Text. AI Agents Sent It 33 MessagesQuelle: dev.to (dev.to). Original öffnen