VibeCoderzVibeCoderz
Все статьи
Модели и сравнения2026/08/048 мин чтения

Slopsquatting 2026 как не установить npm пакет от нейросети

Содержание (10)+

Slopsquatting — это атака на цепочку поставок, при которой злоумышленник регистрирует на npm или PyPI пакет с именем, которое нейросеть просто придумала. Разработчик или AI-агент ставит его по совету модели, а получает чужой код на своей машине. В статье разберем, откуда берутся такие галлюцинации, сколько их реально в AI-коде и как проверить пакет за минуту до того, как набрать npm install.

Slopsquatting эксплуатирует склонность нейросетей выдумывать имена npm и PyPI пакетов: 19.7% рекомендаций из исследования USENIX Security 2025 оказались вымышленными. Кейс react-codeshift показал, как один такой пакет разошелся по 237 репозиториям без единой злой руки. Ниже — механика атаки, цифры и рабочий чек-лист проверки зависимостей.

Что такое slopsquatting и откуда взялось название?

Slopsquatting — портманто из "AI slop" (мусорный AI-контент) и "typosquatting". Термин ввел Сет Ларсон, security developer-in-residence Python Software Foundation.

Механика простая. AI-инструмент для кода советует установить библиотеку, которой никогда не было в реестре. Атакующий регистрирует это имя первым и кладет туда вредоносный payload. Дальше он просто ждет, пока следующий разработчик или агент выполнит установку.

В отличие от классического тайпсквоттинга slopsquatting не строится на опечатке. Атакующий не делает reqeusts из requests, он берет ровно то имя, которое модель предложит снова и снова. Из-за этого фильтры схожести имен, которые реестры годами затачивали против опечаток, тут попросту не срабатывают — новое имя не похоже ни на что существующее, поэтому не вызывает тревоги при регистрации.

Изображение

Мы в VibeCoderz регулярно тестируем Cursor, Windsurf и Claude Code для каталога вайбкодинг-инструментов, и вопрос "а точно ли эта библиотека существует" за последний год стал таким же рутинным, как проверка синтаксиса.

Почему нейросеть выдумывает npm пакет, которого нет?

Модель не врет намеренно, она статистически достраивает правдоподобное имя по паттернам из обучающих данных, когда точного совпадения не находит.

Исследователи из USENIX Security 2025 разобрали галлюцинации на три типа: 51% — чистая выдумка без реального прототипа, 38% — конфляция, то есть склейка двух настоящих пакетов в одно правдоподобное имя, и 13% — вариации, близкие к опечаткам. Именно конфляция дает самые опасные имена: они звучат как логичный продукт двух известных библиотек, а не как случайный набор букв.

Изображение

Открытые модели галлюцинируют заметно чаще коммерческих. В том же исследовании open-source модели ошибались в среднем в 21.7% случаев, у коммерческих моделей показатель был на уровне 5.2%. У некоторых версий CodeLlama доля доходила до трети всех рекомендаций. При этом хорошая новость есть: часть моделей, включая GPT-4 Turbo и DeepSeek, смогли сами распознать свою же выдумку с точностью выше 75%, если их попросить перепроверить ответ.

Насколько это массовая проблема на самом деле?

Больше 200 000 уникальных выдуманных имен пакетов зафиксировано в одном исследовании, а почти каждая пятая AI-рекомендация оказывается фантомом.

USENIX Security 2025 прогнали 16 моделей через 576 000 образцов кода и получили 19.7% галлюцинированных пакетов, всего 205 474 уникальных несуществующих имени. Отдельно проверили повторяемость: одинаковый промт запускали десять раз подряд, и 43% выдуманных имен всплывали при каждом повторе без исключений. Для атакующего это значит одно: не нужно гадать, достаточно прогнать популярную модель пару десятков раз и зарегистрировать то, что повторяется чаще всего.

Изображение
ПоказательЗначениеИсточник
Доля галлюцинированных пакетов19.7% из 576 000 образцовUSENIX Security 2025
Уникальных выдуманных имен205 474USENIX Security 2025
Повторяемость при 10 прогонах43% имен совпадают каждый разUSENIX Security 2025
Галлюцинации open-source моделей21.7% в среднемUSENIX Security 2025
Галлюцинации коммерческих моделей5.2% в среднемUSENIX Security 2025
Репозиториев заразил react-codeshift237Aikido Security, январь 2026

Свежая переоценка новых флагманских моделей ("The Range Shrinks, the Threat Remains", 2026) показала, что частота отдельной модели упала до 4.6-6.1%. Но нашлось 127 имен, которые независимо выдумали сразу пять разных моделей — 109 на PyPI и 18 на npm. Для атакующего такое совпадение ценнее всего: один зарегистрированный пакет ловит пользователей сразу нескольких AI-инструментов.

Как react-codeshift заразил 237 репозиториев?

В январе 2026 исследователь Aikido Charlie Eriksen нашел на GitHub несуществующий npm пакет react-codeshift, который AI-агенты пытались установить каждый день, и зарегистрировал имя раньше злоумышленников.

История началась с обычного вайбкодинга. Кто-то в октябре 2025 собрал набор agent skills для миграции проектов между фреймворками. Внутри было два скилла, которые вызывали через npx пакет react-codeshift — имя-гибрид из двух реальных инструментов, jscodeshift и react-codemod. Пакета никогда не существовало, никто его не публиковал.

Файлы со скиллами разошлись по форкам, их переводили на японский, где-то заменили npx на bunx. К моменту, когда Eriksen обнаружил проблему, имя фигурировало в 237 репозиториях, и агенты продолжали дергать npm install по одной-четыре загрузки в день. Он зарегистрировал пакет сам, просто чтобы никто не успел раньше. Атаки не случилось только потому, что первым оказался исследователь, а не злоумышленник.

Изображение

Похожий случай раньше произошел с huggingface-cli: модели вместо правильной команды pip install -U "huggingface_hub[cli]" упорно советовали короткое несуществующее имя. Исследователь Bar Lanyado зарегистрировал его как пустышку и за три месяца получил больше 30 000 честных загрузок, включая копипаст в публичном README Alibaba.

Чем это опасно для вайбкодеров в Cursor, Windsurf и Claude Code?

Агентные IDE ставят зависимости автоматически, без паузы на человеческое ревью, поэтому одна галлюцинация превращается в установку без единого клика подтверждения.

Раньше слопсквоттинг был социальной инженерией: нужно было, чтобы разработчик поверил подсказке и сам вбил npm install. Сейчас Cursor, Windsurf, GitHub Copilot и Claude Code умеют читать задачу, писать код, добавлять зависимость и запускать её сами. Если агент работает в режиме автоматического подтверждения команд, между галлюцинацией модели и выполнением вредоносного постинсталл-скрипта не остается ни одного человека.

Изображение
Максим: «GoBanana мы собрали за 3 часа после выхода модели, и это принесло 12 млн рублей без единого рубля на рекламу. Но чем быстрее катишь фичу через агента, тем легче пропустить момент, когда он сам добавил зависимость, которой нет в природе. У нас теперь ручная проверка новых пакетов — отдельный пункт чеклиста перед деплоем, а не что-то по желанию.»

Для вайбкодеров, которые собирают MVP за вечер, это не абстрактная угроза, а конкретный шаг в процессе. Один пропущенный npm install с чужим payload способен слить переменные окружения или токены доступа раньше, чем продукт увидит первого пользователя.

Как проверить пакет перед npm install?

Перед установкой любого нового имени стоит проверить его существование в реестре, дату публикации, число загрузок и автора — это занимает меньше минуты и снимает большую часть риска.

Пять шагов, которые стоит превратить в привычку:

  1. Открыть npm view имя-пакета в терминале до установки. Если реестр вернет ошибку 404, пакета просто нет, и нейросеть его выдумала.
  2. Зайти на npmjs.com или pypi.org и посмотреть карточку пакета: дату первой публикации, число еженедельных загрузок, наличие README и репозитория на GitHub.
  3. Свежая регистрация без истории, с горсткой загрузок и без внятного автора — сигнал остановиться и погуглить название отдельно от контекста нейросети.
  4. Сверить название с официальной документацией технологии, если речь про известный фреймворк. Конфляция вроде react-codeshift обычно звучит правдоподобно именно потому, что мешает два настоящих имени.
  5. Для агентных IDE отключить автоматическое подтверждение установки пакетов и включить ручное одобрение каждой новой зависимости в настройках агента.
Изображение

Какие инструменты защищают от slopsquatting?

Специализированные SCA-сканеры и package-firewall решения ловят подозрительные пакеты по возрасту, числу загрузок и паттернам имен до того, как код попадет в сборку.

Ручная проверка хорошо работает на старте, но не масштабируется на команду или CI/CD. Здесь на сцену выходят инструменты для анализа состава ПО.

Изображение
ИнструментЧто делаетКогда подключать
npm audit signaturesПроверяет криптографические подписи provenance у пакетов npmВ каждый CI-пайплайн по умолчанию
Socket.devСканирует зависимости на подозрительные паттерны имен и поведение постинсталл-скриптовДля команд с активным AI-кодогенерацией
Aikido SafeChainПерехватывает команду установки пакета и сверяет её с threat intelligence до загрузкиДля агентных IDE с автоустановкой
SnykДобавляет отдельную детекцию slopsquatting-паттернов: свежие даты, минимум загрузокДля крупных монорепозиториев
Lock-файлы + npm ciФиксируют уже проверенные версии и блокируют подмену при повторной сборкеВсегда, но не заменяет проверку при первой установке

Ни один из инструментов не закрывает вопрос полностью в одиночку. Аудит USENIX и разборы Aikido сходятся в одном: работает только связка из нескольких слоев — сканер плюс ручное ревью плюс ограничение прав агента на автоустановку.

Что делать, если пакет уже установлен?

Если выдуманное имя уже стоит в node_modules, нужно убрать его, проверить постинсталл-скрипты и сменить все секреты, которые могли быть доступны системе во время установки.

Порядок действий такой: удалить пакет из package.json и node_modules, посмотреть package-lock.json на предмет странных postinstall или preinstall хуков, прогнать проект через антивирус или SCA-сканер и ротировать токены, API-ключи и переменные окружения, к которым процесс установки теоретически имел доступ. Даже если payload не сработал явно, разумнее считать секреты скомпрометированными и поменять их, чем надеяться на удачу.

Изображение

Отдельно стоит проверить agent skill файлы и общие шаблоны промтов в команде. Кейс react-codeshift разошелся именно через копипаст скиллов между репозиториями, а не через прямую атаку — значит зараженная инструкция может тихо сидеть в шаблоне, которым пользуется вся команда.

Итог: как не попасться на slopsquatting в 2026 году

По состоянию на июль 2026 года slopsquatting перестал быть теоретическим риском: реальные кейсы вроде react-codeshift и huggingface-cli накопили десятки тысяч установок. Главная защита та же, что и для любой другой цепочки поставок: не доверять имени пакета только потому, что его предложила уверенная в себе модель. Проверка занимает минуту, а откат последствий заражения — недели.

Если собираете продукт на связке Cursor, Windsurf или Claude Code и хотите выстроить процесс безопасной работы с зависимостями с нуля, посмотрите обзоры инструментов в каталоге AI IDE или запишитесь на консультацию к Максиму: он разберет ваш конкретный стек и процесс деплоя.

Изображение

Частые вопросы про slopsquatting

Что такое slopsquatting простыми словами? Атака, при которой злоумышленник регистрирует пакет с именем, которое придумала нейросеть, и кладет туда вредоносный код вместо ожидаемой библиотеки.

Чем slopsquatting отличается от обычного тайпсквоттинга? Тайпсквоттинг рассчитан на опечатку человека. Slopsquatting использует имя, которое нейросеть выдумала с нуля, поэтому фильтры схожести в реестрах его не ловят.

Как часто нейросети выдумывают пакеты? По данным USENIX Security 2025, почти каждая пятая рекомендация пакета в AI-коде — 19.7% из 576 000 образцов — оказалась несуществующей.

Можно ли доверять коду из Cursor, Windsurf или Claude Code? Логике кода — да, после ревью. Каждую новую зависимость все равно стоит проверять вручную или сканером до установки, независимо от инструмента.

Как проверить npm пакет перед установкой? Выполнить npm view имя-пакета, открыть карточку на npmjs.com и посмотреть дату публикации, число загрузок и автора.

Что делать, если уже установил несуществующий пакет? Удалить его из node_modules и package.json, проверить postinstall-скрипты, просканировать проект и сменить токены и переменные окружения.

Спасают ли lock-файлы от slopsquatting? Они фиксируют уже проверенные версии и защищают повторную сборку, но не мешают первой установке выдуманного имени — нужна проверка до неё.


Обновлено: октябрь 2026. Данные о ценах и функциях AI-инструментов актуальны на момент публикации и могут измениться.

Автор

Максим Наговицын

Маркетинг-стратег, IT-предприниматель, ментор по вайбкодингу

2026/08/04

10+ лет в маркетинге, 300+ клиентских проектов: сайты, реклама, боты. Создатель GoBanana (228K+ пользователей, 11.6 млн ₽ выручки) и VibeCoderz. Делаю AI-продукты сам через Claude Code, Cursor, Windsurf и консультирую тех, кто хочет так же.

Об авторе →
All Posts

Инструменты, упомянутые в статье

Читать далее

📄 Статья

NeuralDeep: российский каталог скиллов для AI-агентов — Яндекс, 1С, Wildberries, Битрикс24

Новый российский каталог NeuralDeep в 74 навыках для AI-агентов, включая Яндекс, Wildberries и Битрикс24, плюс собственный LLM‑API на российских GPU. Это решение без «skills.sh» и с соблюдением 152‑ФЗ.

2026/06/2410 мин
📄 Статья

Claude Fable 5. Нейросеть для программирования с 95% SWE-bench в 2026

Новый Claude Fable 5 от Anthropic ставит рекорд 95 % на SWE‑bench, открывая возможность писать код быстрее и точнее, но стоит почти в два раза дороже предыдущих моделей.

2026/06/1712 мин
📄 Статья

Цена ИИ для программирования в 2026 Claude GPT-5 DeepSeek и Qwen

Июнь 2026 — рынок ИИ для программирования разбился на четыре ценовые сегмента: премиум‑Claude и GPT‑5, средний‑Sonnet и Qwen, value‑DeepSeek и MiniMax, а также бесплатные модели. Выбор зависит от того, насколько критичен уровень качества и готовность платить.

2026/06/1712 мин
📄 Статья

Нейросеть создать приложение: как ИИ пишет код и что делает вайбкодер

ИИ генерирует приложение за несколько шагов: от идеи до деплоя, но в каждом этапе требуется участие человека – от проверки архитектуры до финального тестирования. В статье разбираем, где ИИ самодостаточен, а где нужен вайбкодер.

2026/06/058 мин
📄 Статья

Как запустить вайбкодинг локально через Ollama в 2026 году

Запусти LLM локально с Ollama: никаких подписок, кода не выходит в облако, а все работает на твоём ПК. Это экономия и безопасность для вайбкодинга в 2026 году.

2026/04/218 мин
📄 Статья

Claude vs ChatGPT для вайбкодинга 2026: кто реально лучше пишет код

Claude доказал свою мощь в вайбкодинге 2026: он генерирует более точный, читаемый код, а контекст до 1 млн токенов повышает продуктивность, что заставило большинство разработчиков перейти от ChatGPT.

2026/04/178 мин