
Начало июня выдалось тревожным. Червь, переписывающий сам себя через NPM, заразил 32 пакета Red Hat. Критическая уязвимость в популярном WordPress-плагине уже используется в реальных атаках. А новый класс атак на HTTP/2 позволяет добиться отказа в обслуживании, исчерпав всю доступную процессу память. Коротко (а иногда — не очень) расскажем обо всех важных новостях.
Червь mini-shai-hulud в 32 NPM-пакетах Red Hat
Злоумышленники скомпрометировали сборку релизов на GitHub Actions в репозиториях Red Hat (аккаунт RedHatInsights на GitHub). В результате в каталог NPM попали 64 вредоносные версии 32 пакетов для платформы Red Hat Cloud Services.
В код встроили новый вариант червя mini-shai-hulud. Об аналогичной атаке мы уже писали: тогда червь прошёл через пакеты TanStack и зацепил GitHub и OpenAI.
Новый вредонос ищет токены и учётные данные в окружении. Червь размещается в файле index.js и активируется через preinstall-обработчик при установке поражённого пакета. После запуска он ищет в системе токены к NPM (~/.npmrc), PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp и Kubernetes, а также закрытые ключи SSH, и отправляет найденное злоумышленникам. Если червь находит токен к NPM, он сам публикует новые вредоносные релизы для пакетов из текущего окружения — и так заражает дерево зависимостей.
Доступ к GitHub Actions злоумышленники получили через скомпрометированную учётную запись сотрудника Red Hat. Это позволило отправлять коммиты в репозитории javascript-clients, frontend-components и platform-frontend-ai-toolkit напрямую, в обход рецензирования. Через коммиты подставлялся файл ci.yaml, который при сборке запускал с помощью bun скрипт _index.js. Скрипт использовал полномочие id-token: write, чтобы запросить у GitHub токен OIDC (OpenID Connect), а затем применял его для аутентификации в NPM по механизму trusted publishing.
Кого затронуло: всех, кто устанавливал поражённые версии пакетов @redhat-cloud-services/*. Полный список из 32 пакетов с заражёнными версиями — тут.
Как защититься:
- Проверить, не установлены ли перечисленные версии. Если установлены — считать все токены и учётные данные на этой машине скомпрометированными и сразу их перевыпустить.
- Закрепить конкретные версии зависимостей и переходить на чистую установку из локфайла (npm ci).
- По возможности отключить выполнение установочных скриптов сторонних пакетов (npm install --ignore-scripts).
Захват WordPress-сайтов через плагин WP Maps Pro
В популярном плагине WP Maps Pro для WordPress нашли критическую уязвимость, которую злоумышленники уже эксплуатируют в реальных атаках. Баг позволяет без аутентификации создать на сайте учётную запись администратора и получить полный контроль над ресурсом.
Уязвимость получила идентификатор CVE-2026-8732 и оценку 9,8 балла по шкале CVSS. Под ударом — все версии WP Maps Pro до 6.1.0 включительно. Сам плагин коммерческий, его используют, чтобы встраивать на сайты карты Google Maps и OpenStreetMap, а также создавать локаторы магазинов и каталоги точек продаж.
Проблему обнаружил ИБ-исследователь Дэвид Браун (David Brown). По его словам, корень бага — в функции временного доступа для техподдержки, через которую специалисты разработчика подключаются к сайту клиента для диагностики. Реализация оказалась небезопасной: AJAX-эндпоинт был доступен неавторизованным пользователям и защищался только nonce-токеном, который через JavaScript публиковался на всех страницах сайта. В итоге проверка не давала реального контроля доступа.
Для эксплуатации хватало одного запроса с параметром check_temp=false. После этого плагин создавал нового пользователя с жёстко заданной ролью администратора, генерировал для него magic-ссылку и возвращал её в ответе. При переходе по ссылке WordPress авторизовал пользователя автоматически — ни пароль, ни дополнительные проверки не требовались. Получив права администратора, атакующий мог ставить вредоносные плагины, размещать веб-шеллы, внедрять бэкдоры, красть данные пользователей или полностью перехватить управление сайтом.
Кого затронуло: сайты на WordPress с установленным WP Maps Pro версии 6.1.0 и ниже. Атаки уже идут: в Wordfence сообщили, что за сутки заблокировали около 2858 попыток эксплуатации, а специалисты Defiant за тот же период зафиксировали более 3600 атак.
Как защититься: обновить WP Maps Pro до версии 6.1.1 или новее — патч вышел 20 мая 2026 года и ограничил доступ к проблемному эндпоинту только авторизованными администраторами. Учитывая, что эксплуатация уязвимости уже началась, откладывать обновление не стоит.
HTTP/2 Bomb: атака, которая исчерпывает память сервера
Раскрыта информация об уязвимости HTTP/2 Bomb, которая затрагивает разные реализации протокола HTTP/2 и позволяет добиться отказа в обслуживании, исчерпав всю доступную процессу память. Проблему подтвердили в конфигурации по умолчанию у nginx, Apache httpd (CVE-2026-49975), Microsoft IIS, Envoy (CVE-2026-47774) и Cloudflare Pingora.
Метод напоминает zip-бомбу, только применённую к сжатию заголовков в HTTP/2. Запрос может содержать тысячи сжатых заголовков (например, Cookie) без полезных данных. Каждый такой заголовок в запросе — это однобайтовая ссылка в индексе HPACK, но на сервере под него выделяется память под весь заголовок целиком. Отсюда и многократное усиление: на каждый байт в индексе сервер тратит куда больше.
| Сервер | Расход памяти на байт индекса | Время до исчерпания 32 ГБ (канал 100 Мбит/с) |
|---|---|---|
| nginx, IIS, Pingora | около 70 байт | 45 секунд (nginx 1.29.7) |
| Apache httpd | около 4000 байт | 18 секунд (httpd 2.4.67) |
| Envoy | около 5700 байт | 10 секунд (Envoy 1.37.2) |
Кого затронуло: перечисленные HTTP-серверы в конфигурации по умолчанию. Сервер Angie уязвимости не подвержен — защиту от этой атаки в него перенесли из freenginx ещё в версии 1.8.0 в 2024 году. Позднее наличие проблемы подтвердили и в HTTP-сервере h2o.
Как защититься:
- nginx — обновиться до 1.29.8: туда из freenginx перенесли директиву max_headers, которая по умолчанию допускает не более 1000 заголовков.
- Envoy — обновиться до 1.35.11 или 1.36.7 с лимитами mutable_max_request_headers_kb и max_headers_count.
- Cloudflare Pingora — обновиться до 0.8.1, куда добавили ограничения, блокирующие атаку.
- Apache httpd — исправление готово в модуле mod_http2 2.0.41, но в релизы Apache httpd оно ещё не вошло. До выхода релиза обновление сервера дыру не закроет — остаётся обновить mod_http2 вручную или использовать обходной путь (ниже).
- Microsoft IIS — исправления пока нет.
- h2o — исправление доступно в виде патча.
- В качестве обходного пути можно отключить HTTP/2 и выставить ограничение на объём памяти для рабочих процессов.