Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Новый червь ChainDrop поразил более 400 NPM-пакетов

04.08.2026 22:30 (MSK)

Зафиксирована массовая атака на пакеты в репозитории NPM, проводимая с использованием нового самораспространяющегося червя ChainDrop, подставляющего вредоносное ПО в зависимости. В результате атаки опубликовано 2212 вредоносных выпусков для 444 пакетов. Наиболее популярные из скомпрометированных пакетов keyv, flat-cache и file-entry-cache насчитывают 154, 149.9 и 147.6 миллионов загрузок в неделю.

Загрузчик червя размещался в файлах setup.mjs и Math_Symbol.js, которые запускались при помощи preinstall-обработчика ("preinstall": "node setup.mjs"), вызываемого при установке поражённого пакета. Указанные скрипты загружали легитимный Bun runtime и обфусцированный код червя, размером 710 Кб. После активации червь выполнял поиск в системе и в переменных окружения токенов к NPM, PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp, KubernetesK8s и другим сервисам (всего анализировалось более 140 файловых путей, типа ~/.npmrc), а также анализировал память (через /proc/<pid>/mem) окружения GitHub Actions на предмет токенов и учётных данных.

В случае обнаружения токена для подключения к каталогу NPM червь автоматически публиковал новые вредоносные релизы для разрабатываемых в текущем окружении пакетов, поражая дерево зависимостей. В отличие от ранее выявленного червя Shai-Hulud 2.0 в ChainDrop была реализована техника EtherHiding для получения управляющих команд через публичный блокчейн Ethereum, задействовано шифрование для скрытия передаваемых на сервер атакующих конфиденциальных данных и обеспечено внедрение в файлы конфигурации Claude Code, VS Code и GitHub Copilot для закрепления присутствия в системе. Если в системе установлена русскоязычная локаль (LANG=ru*), то червь прекращает работу.

Атака началась с компрометации процесса формирования релизов на базе GitHub Actions для пакета keyv, насчитывающего 154 млн загрузок в неделю и используемого как зависимость в 1703 пакетах. Доступ получен в результате атаки на сопровождающего, позволившей получить его учётные данные.

Атакующие сформировали новую версию 6.0.0, подставив в неё вредоносный код, и опубликовали её с использованием механизма "Trusted Publishers" и корректной SLSA-аттестацией. После публикации червь поразил многие зависимые от keyv пакеты и по цепочке стал поражать непрямые зависимости.

Среди наиболее популярных пакетов, которые оказались поражены червём, опубликовавшим для них вредоносные релизы:

  • flat-cache 6.1.24 (149.8 млн загрузок в неделю);
  • file-entry-cache 11.1.6 (147.5 млн);
  • cacheable-request 13.0.20 (33.9 млн);
  • @cacheable/utils 2.5.1 (8.7 млн);
  • cacheable 2.5.1 (7.8 млн);
  • @cacheable/memory 2.2.1 (7.1 млн);
  • cache-manager 7.2.10 (4.2 млн);
  • @cacheable/node-cache 3.1.2 (1.5 млн).

  1. Главная ссылка к новости (https://www.stepsecurity.io/bl...)
  2. OpenNews: Атакующие встроили вредоносное ПО в 32 NPM-пакета Red Hat
  3. OpenNews: В 42 NPM-пакета TanStack интегрирован самораспространяющийся червь
  4. OpenNews: Анализ конфиденциальных данных, захваченных червём Shai-Hulud 2
  5. OpenNews: В NPM 12.0 по умолчанию отключён запуск скриптов при установке пакетов
  6. OpenNews: При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
Лицензия: CC BY 3.0
Источник: Червь ChainDrop поразил более 400 NPM-пакетов
Короткая ссылка: https://opennet.ru/66030-worm
Ключевые слова: worm, npm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, limafresh (ok), 22:55, 04/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Поражение пакетов в NPM и PyPi это уже ходячий анекдот
     
     
  • 2.4, Аноним (4), 23:15, 04/08/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >Атака началась с компрометации процесса формирования релизов на базе GitHub Actions

    Вот кто виноват.

     
     
  • 3.11, Bob (??), 02:03, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Frequently, attacks start with a phishing campaign targeting maintainers

    С одной стороны у нас Поле Чудес на гитхабе и Буратино на Буратине.

    С другой стороны куча ленивых слабоумных болванчиков, собирающих 100500 зависимостей и без аудита.

    GG WP EZ

     
     
  • 4.29, Tron is Whistling (?), 09:12, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Примитивизация деятельности (появление бездумности) - это новый вызов отрасли, ответа на который пока что нет, потому что есть острая нехватка персонала. Вот и приходится плодить "опсов", которые с трудом понимают, что делают.
     
  • 3.42, Аноним (-), 14:32, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ибо nеxyi автоматически делать выпуски через GitHub Actions.

    Только ручные подписанные выпуски, а Actions только для автоматического тестирования, проверки воспроизводимости (для компилируемых проектов).

    Ключи для подписи хранить в Split-GPG или HSM.

    Среду разработки держать в отдельной виртуальной машине, изучать код перед выпуском в отдельной.

    Все Actions форкать и обновлять вручную, тонко настраивать.

     
  • 2.5, Rev (ok), 23:18, 04/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, как обычный вторник.
     
  • 2.28, Tron is Whistling (?), 09:11, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Любой краудсорс хламовник этому подвержен.
     
     
  • 3.34, Жироватт (ok), 09:25, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не то, что репозиторий от bigOmniCorp Inc / ACME LLC / HuoSung HighTech Hainan Company / ПАО ГШУ ВПК ПСК "Солнышко" - там не хламовник, а коллекция в стиле "Творческий(с) Беспорядок(тм)". И там не черви, а оффициально одобренные Модули Сбора Телеметрии И Информации(r), которые воруют токены, логины-пароли, метаинформацию, данные кошельков и особо конфиденциальные пользовательские данные с любовью, заботой о пользователе и в стремлении улуДшить его пользовательский опыт
     
     
  • 4.35, Tron is Whistling (?), 09:39, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Те хотя бы одобренные.
    Но вы можете продолжать тащить случайные :)
     
     
  • 5.38, Аноним (38), 09:46, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Те хотя бы одобренные.
    > Но вы можете продолжать тащить случайные :)

    одобрен кем?

     
     
  • 6.39, Аноним (39), 09:56, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кем надо одобрен!
     

  • 1.2, Dzen Python (ok), 23:12, 04/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Никогда такого не было - и вот опять (с)
     
     
  • 2.44, Аноним (44), 15:36, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Академического подхода уже нет, отрасль обречена на тотальную деградацию.
     

  • 1.3, Аноним1123 (?), 23:12, 04/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Как понять, что пакет в npm поражен?
    Если он лежит в npm, значит он поражен
     
     
  • 2.8, Джон Титор (ok), 23:48, 04/08/2026 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 2.12, Bob (??), 02:06, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если разраб ещё не в пакете для тела - поражён)

    npm на каждый чих это метастазы JS

     
     
  • 3.27, Смузихеб забывший пароль (?), 08:27, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > npm на каждый чих это метастазы JS

    Но разве это не Юникс-вэй, где каждой отдельной задаче - по отдельной хреновине ?

     
     
  • 4.36, Tron is Whistling (?), 09:40, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Задаче, не действию.
     
  • 4.40, Tron is Whistling (?), 10:00, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Когда для поднесения ложки ко рту внезапно становятся необходимы внешние устройства для поворота головы, открывания рта, сгибания пальцев и подъёма/поворота руки - это говорит только о существенной ограниченности.
     
  • 2.33, Жироватт (ok), 09:18, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если он в принципе является пакетом npm.
     

  • 1.6, Аноним (6), 23:27, 04/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Дев контейнеры уже давно пора сделать обязательными для любой разработки софта.
    Чтобы компиляторы отказывались запускаться без этого.
     
     
  • 2.15, Tty4 (?), 05:29, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дадада и говорит ку!
    А нужно лишь мыть руки вовремя и в рот что попало не совать
     
     
  • 3.37, Tron is Whistling (?), 09:41, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тащить в рот всё, что плохо лежит - это новая неучтённая особенность в отрасли, причём независимо от пола.
     
  • 2.22, ыых (?), 07:16, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Решение гораздо проще - выкинуть жс. И девконтейнеры тоже, эта мелкософтовская отрыжка не решает ни одной проблемы
     
     
  • 3.26, serg (??), 07:55, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, а что значит МС отрыжка? Сколько лет собираю в контейнере и не знал что контейнеры это от МС.
     
     
  • 4.47, Аноним (47), 19:37, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    То что ты не отличаешь девконтейнеры от контейнеров - это частично твоя проблема и частично проблема мелкософта, который и тут сделал какую-то хрень вместо нейминга
     

  • 1.7, Джон Титор (ok), 23:37, 04/08/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     
  • 1.9, Аноним (9), 23:55, 04/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что не 5.6.1 или 5.7.0, вместо 6.0.0? Странно как-то. Эффект больше был бы?
     
     
  • 2.30, Жироватт (ok), 09:12, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Эксплуатация уязвимости в мясном боте и логике настройки резолвера обновлений: чтобы точно обновилось - мажорный релиз типа - и мясные боты разрешили на вытягивание поражённой версии.

    Логика как раз тут есть, часть разрабов обычно обновляют библиотеки редко и фиксируют версии, другая часть - настраивает обновление на более высокую среднюю цифру, чтобы не вытягивать постоянно bleeding edge с постоянно бампающейся минорной цифрой. Тут же типа новый мажор, который, должен привлечь внимание и этим дать повод себя скачать.

     

  • 1.10, Аноним (-), 00:19, 05/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда уже наконец откажутся от подобного рода вещей?
     
  • 1.13, Аноним (13), 03:57, 05/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Кто там над AUR смеялся?  
     
     
  • 2.19, Xo (?), 06:44, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По сравнению с этим аур ломали бoмжи шкoльники.
     
     
  • 3.23, ыых (?), 07:20, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какой потужный копиум, особенно если прочитать эту статью нормально (нормально) и увидеть что на входе была обычная социалка.
     
     
  • 4.24, ыых (?), 07:21, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    /(нормально)/(глазами)/
     
  • 4.48, Xo (?), 20:26, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > потужный

    Да не трясись ты так, чё ты эт самое


     

  • 1.14, preuninstall (?), 04:03, 05/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > которые запускались при помощи preinstall-обработчика

    спасибо что не от рута

     
     
  • 2.16, Аноним (16), 05:42, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да это не проблема наверное уже(смотреть недавние уязвимости linux/etc).
     
  • 2.17, User (??), 06:25, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это у васяна root Сакральную Ценность имеет, ибо окромя с трудом установленной (хакир!) ос ничего важного в ей и нет - а тут картинка мал-мала отличается.
     

  • 1.18, Аноним (18), 06:33, 05/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Хм... Почему добавление токенов доступа в переменные окружения казалось мне плохой идеей... Почему токены от моих пакетов лежат у меня в менеджере KeePassXC... Зачем я усложняю жизнь себе и разработчикам вредоносного ПО...
     
     
  • 2.20, Аноним (20), 07:07, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Как будто KeePassXC сильно помогает. Гуевую часть можно подменить и перехватить мастер-пароль. Да или хотя бы через шину accessibility оно ввод, наверняка, сливает.

    В линуксе политика безопасности для зловредного кода, работающего из-под пользователя, строится по принципу "сгорел сарай, гори и хата".

     
     
  • 3.25, Аноним (18), 07:44, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смена стандартного порта SSH до сих пор снижает наплыв ботов, пытающихся авторизоваться на сервере.

    Перемещение токенов доступа от репозиториев пакетов из переменных окружения в KeePassXC точно так же должна помогать.

    При соотношении 1 параноик на 99 дебилов, разработчикам вредоносного ПО экономически невыгодно заморачиваться ради 1% параноиков

     
  • 3.43, Аноним (-), 15:35, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому и появился QubesOS. Есть Split-GPG. Можно через qrexec своё реализовать.
     

  • 1.21, Вася Пупкин (?), 07:16, 05/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Очень опасно если черви/вирусы начнут использовать нейронки, если у пользователя в системе установлен доступ к ним
     
     
  • 2.31, Tron is Whistling (?), 09:13, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если у пользователя в системе установлен такой доступ - так ему и надо :)
     
  • 2.32, Жироватт (ok), 09:17, 05/08/2026 [^] [^^] [^^^] [ответить]  
  • +/
    "Да, вы правы, вместо токена от CI я отправил вам токен от чата Клуба Любителей Пощекотать Область, вот способ, как к нему подключаться из консоли"
    "Да, вы правы, это демо-токен из документации по доступу к bigCorp Inc. Хотите, чтобы я запросил у сисадмина вам ваш личный токен на имя hacker@blackmail? В смысле 'откуда?', нейронка на вашем компе, которой вы атакуете уже слила всю вашу сеть в Днепропетровске и Ереване"
     

  • 1.41, Сладкая булочка (?), 13:58, 05/08/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >  flat-cache 6.1.24 (149.8 млн загрузок в неделю);

    file-entry-cache 11.1.6 (147.5 млн);
    cacheable-request 13.0.20 (33.9 млн);
    @cacheable/utils 2.5.1 (8.7 млн);
    cacheable 2.5.1 (7.8 млн);
    @cacheable/memory 2.2.1 (7.1 млн);
    cache-manager 7.2.10 (4.2 млн);
    @cacheable/node-cache 3.1.2 (1.5 млн).

    Все что нужно знать об уровне этих разработчиков. Уже кэш не могут написать сами.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру