Новости
Критическая брешь в node-tar: крошечный gzip-архив кладёт сервер
Уязвимость CVE-2026-59873 (CVSS 9.2) в библиотеке распаковки архивов Node.js — маленький архив исчерпывает диск и процессор сервера.
RubyGems — центральный реестр пакетов (гемов) для языка Ruby, откуда разработчики по всему миру ежедневно ставят библиотеки в свои проекты. 19–20 июля 2026 исследователи описали атаку на цепочку поставок этого реестра: злоумышленники опубликовали в нём три вредоносных гема, которые под видом обычных инструментов скачивали и запускали сторонний код прямо на машинах программистов.
Коротко: SleeperGem — атака на цепочку поставок RubyGems, о которой 19–20 июля 2026 сообщили исследователи Aikido Security и StepSecurity. Злоумышленники угнали два давно заброшенных аккаунта сопровождающих и опубликовали три вредоносных гема-загрузчика, скачивавших сторонний бинарник на машины разработчиков. Достаточно было установить пакет — проверьте систему и обновите зависимости.

19 июля 2026 исследователь Charlie Eriksen из компании Aikido Security и команда StepSecurity раскрыли атаку на цепочку поставок реестра RubyGems, получившую имя SleeperGem. В реестре нашли три вредоносных гема, которые выдавали себя за легитимные инструменты разработчика, а на деле работали как загрузчики стороннего кода.
По данным исследователей, в атаке участвовали такие пакеты:
Ключевая особенность: два из трёх пакетов принадлежали давно заброшенным аккаунтам сопровождающих (в отчётах называются учётные записи LR-DEV и pinkroom), которые не проявляли активности шесть-семь лет. По оценке исследователей, это первый задокументированный случай, когда на RubyGems угнали сразу несколько «спящих» аккаунтов, чтобы протолкнуть обновления в давно доверенные, но забытые пакеты.
Гем, который годами лежал в реестре без изменений, воспринимается как безопасный. Атака SleeperGem использует именно это: вредоносным становится не новый подозрительный пакет, а свежая версия давно знакомого.
Каждый заражённый гем работал как загрузчик (loader). При установке или подключении пакета срабатывал код, который обращался к стороннему серверу и подтягивал вторую стадию. По описанию Aikido и StepSecurity, вредонос скачивал шелл-скрипт (deploy.sh) и нативный бинарник с публичного Forgejo-хоста git.disroot.org/git-ecosystem. На Windows запуск шёл через PowerShell, на Unix-системах — через обычный shell, причём перед загрузкой отключалась проверка SSL-сертификата.
Скачанный бинарник, по данным исследователей, уже помечен рядом антивирусных движков на VirusTotal как вредоносный. Закрепление в системе шло сразу несколькими способами: запись в cron, создание пользовательских служб systemd и подкладывание оболочки с флагом setuid-root по пути /usr/local/sbin/ping6. Сам управляющий демон разворачивался в каталоге ~/.local/share/gcm/.
Отдельно отмечают эскалацию в версии 2.8.2 гема git_credential_manager: там вредоносная нагрузка стала срабатывать автоматически при импорте библиотеки, а не только при явном вызове. Кроме того, дроппер прописывали в зависимости к нескольким другим пакетам, чтобы он «подтягивался» транзитивно.
Гем (gem) — это упакованная Ruby-библиотека, по сути архив с кодом и метаданными, который ставится командой gem install или через Bundler. «Атака на цепочку поставок» означает, что вредонос попадает к жертве не напрямую, а через доверенный канал распространения — реестр пакетов.
SleeperGem целился именно в ноутбуки разработчиков, а не в серверы сборки. Перед запуском вредонос проверял более 30 переменных окружения, характерных для систем непрерывной интеграции — GitHub Actions, GitLab CI, CircleCI, Travis, Jenkins, Vercel. Если он видел, что запущен внутри CI/CD, то вёл себя тихо и нагрузку не разворачивал. Такая избирательность помогала обходить автоматические песочницы и антивирусные сканеры, которые обычно прогоняют пакеты именно в серверном окружении.
Второй маскирующий приём — «спящие» аккаунты. Обновление в давно не менявшемся, но легитимном пакете вызывает меньше подозрений, чем совершенно новый пакет от неизвестного автора. А использование публичного Forgejo-хоста для доставки нагрузки внешне выглядит как обычное обращение к git-репозиторию, а не к подозрительному командному серверу.
Тактика напоминает недавние истории с недоверенными пакетами в других экосистемах — например, критическую брешь в библиотеке node-tar в npm или адресные атаки на разработчиков через вредоносный код, спрятанный в SVG-картинках. Общий вывод один: реестр пакетов давно стал полноценным вектором атаки.
Прямой риск — у разработчиков на Ruby и всех, кто мог установить перечисленные гемы или пакеты, тянущие их в зависимостях, в период с середины июля 2026. Особенно опасен сценарий, когда пакет попал на рабочую машину с сохранёнными токенами, SSH-ключами и доступами к репозиториям: именно такие данные и были целью.
Косвенно тема касается всех, кто работает с внешними пакетами и файлами из чужих источников. Ставя библиотеку из публичного реестра, вы фактически запускаете чужой код на своей машине — с теми же правами, что и вы сами. Это тот же класс проблем, что и открытие непроверенного вложения: безопасность файлов и загрузок начинается с недоверия к источнику.
Ещё в мае 2026 реестр временно приостанавливал регистрацию новых аккаунтов после наплыва вредоносных пакетов. SleeperGem — продолжение той же волны атак на экосистему Ruby.
Gemfile.lock) на упомянутые пакеты и версии: git_credential_manager 2.8.0–2.8.3, Dendreo 1.1.3–1.1.4, fastlane-plugin-run_tests_firebase_testlab 0.3.2. Если они есть — удалите их.~/.local/share/gcm/, уберите механизмы закрепления (записи в cron, службы systemd, файл /usr/local/sbin/ping6).Разбор недоверенного кода и файлов из внешних реестров — тема шире одного инцидента. Как безопасно принимать, проверять и хранить файлы, разбираем в разделе безопасность файлов.
Данные приведены на 21 июля 2026 по материалам Aikido Security, StepSecurity и профильных СМИ. Имена пакетов, версии и число загрузок указаны по первоисточникам; отдельные детали расследования могут уточняться.