Shai-Hulud зарази 868 npm пакета и краде ключове

На 4 август 2026 г. саморазмножаващ се червей от семейството Shai-Hulud плъзна из npm и за около половин час зарази стотици пакети. Aikido Security преброи 868 пакета в 1381 версии с над 2 милиарда месечни изтегляния; SafeDep потвърди 2234 отровени версии в 444 имена на пакети, разпределени в дванайсет организации. Зловредният код краде npm токени, GitHub идентификации, облачни ключове и Vault тайни — и се разпространява сам нататък.
Всичко тръгна от keyv
Първата потвърдена зловредна публикация е keyv@6.0.0. Нападателят е превзел GitHub акаунта на поддържащия библиотеката, комитнал е директно в главния клон и веднага е издал нови версии — така пакетите излизат с легитимен provenance от GitHub Actions.
Проблемът е в мащаба: keyv прави около 604 млн. изтегляния месечно, а същият човек поддържа и flat-cache (580 млн.), file-entry-cache (571 млн.) и cacheable-request (137 млн.). Оттам вълната стигна до пакети на Deliveroo, PicsArt, Qlik, @onereach и @servicetitan.
Новите версии съдържат preinstall скрипт:
"scripts": {
"preinstall": "node setup.mjs"
}
Тоест кодът се изпълнява при обикновено npm install — на вашата машина и в CI средите ви.
Снимка: Datadog Security Labs
Bun, 728 KB полезен товар и памет на CI runner-ите
Първата степен е малък 11-килобайтов loader. Той проверява дали има инсталиран Bun, а ако няма — сваля Bun 1.3.13 директно от официалните GitHub releases, без каквато и да е криптографска проверка. После пуска обфускиран файл от около 728 KB (Math_Symbol.js, във втора генерация — math_init.js).
Оттам нататък анализът на Datadog Security Labs описва методичен обир: 290 шаблона за търсене в Linux, 129 за macOS и 50 за Windows, насочени към SSH ключове, .npmrc, Git конфигурации, .env файлове, Terraform state, Docker конфигурации. Добавете AWS (STS, Secrets Manager, Parameter Store), Kubernetes service account токени и HashiCorp Vault.
Най-грозното: на Linux зловредният код вгражда Python, за да чете /proc/<pid>/mem на GitHub Actions runner-ите и да вади тайни направо от паметта на процеса.
Хуковете в Claude Code и VS Code
Тук идва частта, която засяга всеки, който работи с AI асистент в редактора. Когато червеят се сдобие с ghs_ токен, той комитва в клоновете на хранилището (до 50 на repo) два файла:
.claude/settings.json— SessionStart хук, който пускаnode .vscode/setup.mjs.vscode/tasks.json— задача при отваряне на папка, която пускаnode .claude/setup.mjs
Кръстосаните пътища не са грешка, а начин да се скрие връзката между двата файла. Резултатът е, че заразата се задейства при отваряне на проекта в VS Code или при старт на сесия в Claude Code — без никаква инсталация.
Важно уточнение от The Hacker News: и двата редактора искат одобрение на workspace trust, преди да изпълнят такива задачи. Тоест механичното кликане на „Доверявам се на авторите” е единствената преграда. Semgrep е документирала абсолютно същите хукове и същото сваляне на Bun при компрометирането на PyPI пакета lightning през април 2026 г. — почеркът е един и същ.
Изнасяне на данните през GitHub и Ethereum
Откраднатите тайни се пакетират, криптират с AES-256-GCM и се качват в публични GitHub хранилища с описание „Shai-Hulud: Here We Go Again”. Броят им варира между около 821 и 1300 според различните екипи. Резервният канал минава през npm-cache[.]com, а адресът на актуалния сървър се чете от смарт контракт в Ethereum (0xE1f2395ee43e45A1556EC6438a88c31B83493103) — dead drop, който не може да бъде свален с едно писмо до хостинга.
В кода има и опит за изнудване: токените се вграждат с надпис „IfYouBlockThisAPIKeyItWillCrashTheLiveProductionServersOfAllThirdPartyClients”, за да ви разубеди да ги отменяте.
Не бързайте да ротирате токените. SafeDep предупреждава, че зловредният код инсталира наблюдател за отмяна на токени — самото анулиране може да задейства обработчик на нападателя. Първо махнете малуера, после сменяйте ключовете.
Какво да направите
Проверете lock файловете си срещу списъците с компрометирани версии и потърсете в хранилищата си неочаквани директории .claude/ и .vscode/. Datadog посочва два лесни индикатора: заключващ файл tmp.dpkg_14527.lock и променлива на средата _NODE_RUNTIME_INIT=1. След почистване ротирайте всичко — npm токени, GitHub PAT-ове, облачни ключове.
Отровените версии на Keyv и Cacheable вече са свалени, но при повечето останали пакети етикетът latest дълго остана зловреден. Публична позиция от npm и GitHub към момента на писане няма.
Не е единственият сигнал тази седмица
Паралелно Manifold Security откри 77 зловредни разширения в Open VSX, които между 26 юли и 1 август са събирали hostname, имена на работни папки и версии на редактора; 19 от тях са вадели и данни за CI/cloud среда. Те не са пипали код и токени и са премахнати до 3 август. Fortinet пък описа тровен инсталатор на VPN клиента QuickFox, който от август 2025 г. разнася backdoor-а FDMTP.
Заключение
Shai-Hulud не е нова атака, а нова итерация — и този път скокът от npm към редактора е това, което трябва да ви притеснява. Веригата „чужд пакет → хук в проекта → сесия на AI асистент” превръща всяко клониране на непознато хранилище в риск, сравним с пускането на непознат инсталатор. Ако сте следили как AI агенти вече опитваха да вкарат зловреден код в реален open source проект или как малуер краде синхронизирани passkeys, моделът е познат: атакуват се не хората, а автоматизациите около тях.
Новините на Overclock — директно в Telegram, без алгоритми.
Следвайте ни в Telegram