← News
/DISPATCH · 2026-08-28

AI Coding Agents Induced to Install Unowned Supply-Chain Packages from Corporate Intranets; In-the-Wild Malicious Sample Found on clerk.com

In late August 2026, Israeli security researcher Alon Hertz published a supply-chain attack study: among llms.txt / llms-full.txt files on 6,214 domains, 120 entries pointed at never-registered PyPI / npm packages. Claude, Codex, Hermes, and other AI coding agents faithfully executed the installs on multiple world-class corporate networks. clerk.com was found hosting a real in-the-wild malicious sample.

Incident overview

On 27 August 2026, Ars Technica and others reported supply-chain research led by Israeli security researcher Alon Hertz: the emerging standard files llms.txt / llms-full.txt (robots.txt for AI agents), now widely deployed by enterprises, are being used as a code-delivery pipe. Hertz's team scanned 6,214 domains (defense contractors, Fortune 500, large tech). Across 8,265 llms.txt / llms-full.txt files they found 120 install directives pointing at unregistered PyPI / npm packages, covering 227 install commands.

The team then registered several unclaimed package names and planted beacon payloads. Within an hour they got a callback from a Fortune 500. More callbacks followed from other Fortune 500s and startups. All callback process trees pointed at AI coding agents: Claude (Anthropic), Codex (OpenAI), Hermes (Nous Research).

Most concerning: on clerk.com — a legitimate identity vendor — Hertz's team found `npx clerk-next-fix-auth-protection` in llms.txt. Someone squatted the same name on npm and delivered a real in-the-wild malicious payload. Clerk fixed after disclosure. The incident shows even a legit vendor writing official llms.txt can still get mined on the supply chain.

Technical details

Why llms.txt is a natural supply-chain entry

llms.txt is designed as site notes for AI agents: machine-readable, describing site structure, SDKs to install, recommended dev workflow. Problems:

Hertz observed:

# Snippet from a real enterprise llms.txt
Installation: pip install <unregistered-pkg>
# or
npm install <unregistered-pkg>
# even
As an example of writing integration tests ... you can use the [Citrus] test framework

If the agent already has shell exec, `pip install` looks like a normal build step. It does not stop to ask a human. The attacker only needs to squat the package names first. Ransomware, credential stealers, or backdoors then run inside the corporate network.

clerk.com case: scoped packages + npx as a built-in trap

Clerk's llms.txt told agents to install `@clerk/eslint-plugin`, then run the bin `clerk-next-fix-auth-protection`. Scoped npm packages expose bin names without the scope. If the bare command runs before the scoped package is installed locally, `npx` fetches the same-named unscoped package from the public registry — a package Clerk never published. Someone squatted it and shipped a real malicious payload.

The full chain does not require Clerk to make an active mistake:

Impact

Three key numbers from this research:

At that ratio: even with SWG, EDR, code signing, and image signing in place, AI coding agents still punch through as normal developer behavior. Hertz told Ars Technica: "The trust model is broken. Agents treat vendor docs as ground truth and dont question them."

Broader blast radius:

Remediation

Immediate: inventory and audit

Short term: tighten agent privileges

Mid/long term: agent trusted-content spec

References