HalluSquatting: supply-chain атака на AI coding tools

HalluSquatting делает галлюцинации LLM риском цепочки поставки: coding agent может скачать и запустить ресурс, который атакующий занял заранее.

Схема threat model HalluSquatting: агент получает запрос, модель галлюцинирует ресурс, атакующий заранее регистрирует ловушку
Схема threat model HalluSquatting от Spira et al. Источник: Ars Technica / исследовательская группа; изображение проверено 8 июля 2026 года.

HalluSquatting: supply-chain атака на AI coding tools

Факты проверены 8 июля 2026 года. HalluSquatting — это атака на agentic coding tools, где LLM ошибается в названии репозитория, skill или другого ресурса, а атакующий заранее занимает этот «галлюцинированный» идентификатор. Дальше ошибка перестаёт быть текстовой: coding agent может скачать, установить или запустить ресурс с правами, которые пользователь дал инструменту.

Повод — материал Ars Technica о работе Aya Spira, Elad Feldman, Avishai Wool, Ben Nassi, Stav Cohen и Ron Bitton. Исследователи называют технику adversarial hallucination squatting и показывают, почему prompt injection становится опаснее, когда агент не просто отвечает в чате, а ходит в репозитории, ставит skills и вызывает shell.

Артефакт Риск Что защищает
Галлюцинированный GitHub repo Агент клонирует не тот owner/repo и запускает инструкции из README или install script. Allowlist владельцев, проверка URL, запрет auto-run после clone.
Skill из marketplace Пакет получает доступ к файлам, секретам, shell и внешним сервисам в контексте агента. Проверка metadata, кода и инструкций до установки; sandbox для skills.
Пакет или dependency Сценарий похож на typosquatting: модель предлагает правдоподобное, но чужое имя. Pinning версий, lockfile, private registry, ручное подтверждение новых зависимостей.
Команда установки Агент выполняет curl-pipe-bash, reverse shell или download-and-run под видом setup. Запрет опасных команд без approval, egress-контроль, dev container без секретов.

Как работает HalluSquatting

Обычный prompt injection чаще «толкают» конкретной жертве: через письмо, календарь, документ или pull request. HalluSquatting работает иначе. Атакующий регистрирует ресурс, который модель с высокой вероятностью придумает сама, когда пользователь попросит найти популярный новый проект или skill. Потом он ждёт, пока agentic tool сам придёт за этим ресурсом.

В описании Ars уязвимыми к такому классу атаки названы Cursor, Cursor CLI, Gemini CLI, Windsurf, GitHub Copilot, Cline, OpenClaw, ZeroClaw и NanoClaw. Это список инструментов из исследовательского сценария, а не доказательство реальной массовой компрометации. Корректнее формулировать так: исследователи показали применимость threat model к агентам и coding assistants, которые сами подтягивают код или инструкции из внешних источников.

Механика выглядит так: пользователь просит «клонируй repo X» или «установи skill Y», LLM ошибается в точном owner/repo, а агент идёт по придуманному адресу. Если атакующий заранее зарегистрировал такой owner, repo или skill и положил туда вредоносную инструкцию, агент может сам выполнить то, что в обычном чате осталось бы просто неверной ссылкой.

Таблица Spira et al. с часто галлюцинируемыми owner/repo для Gemini 2.5 Flash, GPT-5.2, Sonnet 4.5 и Opus 4.5
Исследователи показали повторяющиеся owner/repo-кандидаты, которые модели придумывали вместо реальных адресов популярных репозиториев. Источник: Spira et al. через Ars Technica; изображение проверено 8 июля 2026 года.

Что нашли исследователи

По данным Ars, при просьбе клонировать популярный новый репозиторий LLM могла ошибаться в расположении ресурса до 85% случаев. Для trending skill — пакета инструкций, кода или ресурсов, который расширяет возможности агента, — галлюцинации могли доходить до 100%. Эти числа нужно читать строго в контексте исследования: речь о проверенных сценариях и выбранных ресурсах, а не о любом запросе к любому ассистенту.

Отдельно исследователи проверяли Gemini 2.5 Flash, Gemini 2.5 Pro, GPT-5.1, GPT-5.2, Sonnet 4.5 и Opus 4.5. Самый неприятный паттерн — self-referential slug: модель часто превращает имя проекта в owner/repo вида repo-name/repo-name. Для атакующего это удобно, потому что такой шаблон можно предсказывать без долгого probing конкретной модели.

Есть важная разница между старым и новым кодом. Ars пишет, что для репозиториев до 2019 года средняя частота галлюцинаций была 0,9%, а для репозиториев 2025 года — 92,4%. Объяснение простое: старые ресурсы чаще попадали в обучающие данные и публичные следы, а новые популярные проекты модели знают хуже. Именно поэтому атака нацелена на свежие trending resources, где спрос уже есть, а устойчивой памяти у модели ещё нет.

Почему это supply-chain риск, а не просто ошибка LLM

Если ChatGPT в обычном диалоге выдумал ссылку, пользователь может заметить 404. Если coding agent с доступом к терминалу выдумал репозиторий и сам его клонировал, последствия другие. Агент может прочитать README, выполнить install script, запустить тесты, открыть файл с инструкциями или подключить skill, который получает доступ к рабочему контексту.

Поэтому HalluSquatting ближе к supply-chain атакам, чем к привычной «галлюцинации ответа». Мы уже разбирали похожую логику на примере взлома LiteLLM на PyPI: если разработчик или инструмент доверяет имени пакета, атакующему достаточно занять похожую точку в цепочке поставки. HalluSquatting добавляет к этой схеме модель, которая сама генерирует ошибочный адрес.

Схожий фон есть у Unit 42. В июне 2026 года исследователи Palo Alto Networks описали phantom squatting для доменов: две LLM сгенерировали 2,1 млн уникальных URL по 685 339 запросам для 913 глобальных брендов. В этой выборке было 13 229 уже вредоносных URL и около 250 000 незарегистрированных phantom domains, которые теоретически мог занять атакующий. Термин там другой, но механизм близкий: модель придумывает правдоподобный идентификатор, а злоумышленник превращает его в инфраструктуру.

Skills делают проблему острее

Skills — отдельная причина, почему тема важна для agentic coding. В работе Unit 42 `Trust No Skill` skill описан как небольшой пакет с metadata, исполняемым кодом и natural-language instructions. После установки он может работать в привилегированном контексте агента: читать переменные окружения, вызывать внешние сервисы, писать файлы и запускать shell-команды.

Unit 42 проверила 49 943 skills в OpenClaw registry и нашла 250 706 behavioral deviations; у 80,0% skills было хотя бы одно расхождение между заявленным и фактическим поведением. Большая часть оказалась не злым умыслом, а плохой документацией. Но 5,0% registry, или 2 490 skills, попали в верхний риск-слой с multi-stage attack chains, которые требуют обязательного security review.

График Unit 42 с классификацией behavioral deviations в skills: documentation errors, data theft, payload infrastructure и agent hijacking
Unit 42 показывает, что риск в skills часто лежит не в одной функции, а в цепочке: чтение файла, кодирование, сеть, инструкция для агента. Источник: Palo Alto Networks Unit 42; изображение проверено 8 июля 2026 года.

OpenClaw даёт ещё более приземлённый пример. В анализе февраля-мая 2026 года Unit 42 нашла пять unblocked malicious skills в ClawHub: два macOS infostealer, один skill с file padding для обхода сканеров и две agentic-схемы с affiliate injection и front-running. Все пять передали ClawHub на удаление. Для HalluSquatting это важный фон: если агент может поставить skill из marketplace, то ошибка в названии или доверии к источнику становится не мелочью, а полноценным каналом доставки.

Чем HalluSquatting отличается от соседних атак

Термин Поверхность Главная идея
Prompt injection Письма, документы, сайты, stdout, README, issue-треды. Модель принимает чужой текст за инструкцию и меняет поведение.
Typosquatting Пакеты, домены, репозитории с похожими именами. Человек ошибается в имени и попадает на ресурс атакующего.
Phantom squatting Галлюцинированные домены и URL. LLM придумывает правдоподобный домен, который можно зарегистрировать.
HalluSquatting Репозитории, skills, пакеты, команды и другие agentic resources. Агент сам тянет галлюцинированный ресурс и может выполнить вредоносную инструкцию.

Граница с prompt injection здесь тонкая. HalluSquatting часто заканчивается prompt injection внутри README, skill или инструкции установки. Но уникальная часть атаки в другом: как доставить этот prompt к большому числу агентов без таргетинга каждого пользователя. Ответ исследователей — занять те идентификаторы, которые модели будут придумывать сами.

Что делать командам

Защита начинается не с просьбы к модели «будь осторожнее». У agentic coding tools нужно ограничивать действия, источники и среду исполнения. Минимальный набор мер такой:

  • разрешать clone/install только из allowlist владельцев, registry и доменов;
  • показывать пользователю полный URL ресурса до загрузки, а не только короткое имя проекта;
  • запрещать автоматический запуск install scripts, postinstall, curl-pipe-bash и похожих команд без отдельного approval;
  • использовать dev containers, VM или sandbox без production-секретов для агентных задач;
  • проверять новые dependencies через lockfile, package provenance, commit hash и private registry;
  • для skills сравнивать metadata, код и natural-language instructions, а не смотреть только на README;
  • логировать tool invocation, shell-команды, сетевые запросы и скачанные артефакты;
  • ограничивать egress: агенту не нужен произвольный доступ ко всему интернету для каждой задачи;
  • обучить ревьюеров смотреть не только diff кода, но и новые agent instructions, hooks и MCP/skill-конфигурации.

Эта рамка стыкуется с более широкой темой AI Security агентных систем. Чем больше автономии у агента, тем меньше помогает один хороший system prompt. Нужны обычные инженерные границы: права, сеть, журналирование, воспроизводимость, review и возможность остановить сессию.

Чего из исследования не следует

Из HalluSquatting не следует, что Cursor, Gemini CLI, Windsurf, Copilot или Cline уже заражают пользователей. Публичный материал Ars описывает исследовательский сценарий и класс уязвимости, а не подтверждённую массовую кампанию. Поэтому заголовки в духе «все AI coding tools взломаны» будут неверными.

Не следует и обратное, что риск можно отложить до первого громкого инцидента. В соседнем материале про Claude Code, Alibaba и JADEPUFFER мы уже видели похожий сдвиг: агентные инструменты меняют скорость и связность атаки, даже если отдельные ошибки давно знакомы security-командам. HalluSquatting добавляет к этому ещё один слой: модель может сама привести агента к ресурсу атакующего.

Главная практическая формула простая: не доверяйте ресурсам только потому, что их предложила модель. Для agentic coding это должно стать таким же базовым правилом, как «не запускай чужой shell script из README без проверки».

FAQ

Что такое HalluSquatting?

HalluSquatting — это adversarial hallucination squatting: атакующий заранее занимает репозиторий, skill, пакет или другой resource identifier, который LLM с высокой вероятностью придумает при работе с популярным новым ресурсом. Coding agent может подтянуть этот ресурс и выполнить вредоносные инструкции.

Это уже реальная массовая атака?

Публичные источники на 8 июля 2026 года описывают исследование и threat model. Подтверждённой массовой кампании HalluSquatting с реальным ботнетом в открытых источниках нет.

Какие инструменты упомянуты в исследовании?

Ars Technica перечисляет Cursor, Cursor CLI, Gemini CLI, Windsurf, GitHub Copilot, Cline, OpenClaw, ZeroClaw и NanoClaw. Для других agentic coding tools риск нужно оценивать по возможностям: может ли инструмент сам искать ресурсы, скачивать их, ставить dependencies и запускать команды.

Почему свежие репозитории опаснее старых?

По пересказу исследования в Ars, для репозиториев до 2019 года средняя частота галлюцинаций была 0,9%, а для репозиториев 2025 года — 92,4%. Новые проекты чаще отсутствуют в обучающих данных и устойчивых публичных следах, поэтому модель легче придумывает правдоподобный, но неверный адрес.

Как снизить риск прямо сейчас?

Отключите auto-run для install scripts, требуйте явное подтверждение clone/install, держите allowlist источников, запускайте агентов в sandbox без секретов и проверяйте каждый новый skill или dependency до установки. Для корпоративного контура добавьте egress-контроль и журналы tool invocation.

Источники

Читайте также

Telegram-канал @toolarium