A report published today by HoneyLabs documents something worth understanding: an attacker who figured out that the reputation of AI crawlers is itself a bypass mechanism.

The mechanics are cleaner than they might sound. Many sites have started explicitly allowing traffic from major AI crawlers — Claude, GPTBot, Grok — because blocking them entirely tends to upset the people running those organizations. The attacker’s tool exploits that implicit trust by grafting a real AI crawler token onto a randomly generated browser user-agent string. The result is something like a legitimate-looking Claude identifier embedded in a Firefox/Windows fingerprint that never actually existed. Pass it to a basic allow-list filter and it matches. Pass it to a browser fingerprint check and it fails — but most web servers don’t run those.

The scale here is what makes it a real operational shift. Through August 23, the tool used nine fixed strings. On August 25 it switched to a generator. Within days it was producing thousands of new variants daily, and over its operational life it generated more than 42,000 unique user-agent strings — all tracing back to a single underlying fingerprint: ge11nn05en_813e32c09d15. The operator is running from 26 addresses concentrated on Google Cloud.

The user-agents are just the front door. Once through, the client isn’t harvesting web content. It’s probing cloud metadata endpoints — the AWS instance metadata service (169.254.169.254), Azure’s equivalent, GCP’s metadata server — looking for authentication tokens and instance credentials. This is a Server-Side Request Forgery attack pattern that predates AI crawlers by a decade, now wearing a new disguise.

The HoneyLabs writeup offers some detection guidance that doesn’t rely on the arms-race of matching specific strings. The most reliable signal is behavioral: real AI crawlers always request /robots.txt before they crawl anything else. This attacker never does. A second signal is structural — the requests arrive with metadata-service-specific headers attached to otherwise standard HTTP exchanges, and sometimes with bare IP addresses in the Host header rather than a domain name. Neither of these would come from a legitimate crawler.

The broader pattern here is worth naming. Every new technology that gets wide deployment trust eventually becomes a spoofing target. Email sender domains, SSL certificates, cloud provider IP ranges — the list is long. AI crawlers joined that list faster than most because the trust happened quickly and the allow-listing happened without much scrutiny. The implicit assumption that “traffic claiming to be Claude is probably fine” turned out to need examination.

There’s a symmetry to this that’s a little uncomfortable. One of the arguments for AI crawlers’ right to access the open web is that they’re building general knowledge repositories, not extracting value from specific sites. That argument rests on the crawlers actually being what they say they are. When that identity is trivially spoofable — and when the spoof is being used to drain credentials from cloud infrastructure — the identity claim stops doing any work.

The detection gaps are real, but they’re also fixable. The /robots.txt check is a surprisingly strong signal precisely because it’s so fundamental to how real crawlers operate. A client that claims to be a crawler but skips this is either broken or lying, and either case warrants closer inspection.