Дыра в PHP: Европа на день выключила госсайты

21 октября вышли экстренные патчи PHP. Две уязвимости в ядре языка, их назвали PHP2Shell (CVE-2026-109618 и CVE-2026-109619), позволяют выполнить код на сервере без авторизации. Оценка — 9,2 из 10. Уязвимы версии PHP за последние десять лет, а на PHP, по оценке Wiz, работает около 70% сайтов.

Детали утекли на Hacker News 20 октября, за день до патча. Утром 21-го Cloudflare сообщила о первых атаках. Многие организации не стали ждать и просто выключили сайты.

Что отключили

— Нидерланды: вход через DigiD и MijnOverheid, сайт парламента, сайт национального центра кибербезопасности NCSC. Следом — сайты нескольких больниц, порта Роттердама, крупнейших партий и футбольного союза KNVB. — Финляндия: государственный ИТ-оператор Valtori закрыл публичные сервисы. — Франция: МВД распорядилось временно закрыть сайты префектур. — Дания: Kombit отключила несколько платформ, в том числе школьную систему связи с родителями. — Германия и Бельгия: часть федеральных сайтов и сайты МИД. — Wikimedia: Toolforge, Cloud VPS и Phabricator. Сама Википедия работала.

О подтверждённых взломах на 21 октября никто не сообщил. Это меры предосторожности.

Почему выключали сайты целиком, а не ставили заглушку: режим обслуживания в WordPress или Magento здесь не помогает. PHP разбирает запрос раньше, чем приложение проверит флаг. Для mod_php атака срабатывает ещё до запуска кода приложения.

Отдельная проблема — старые версии. По данным Shodan на 20 октября, 59% серверов, которые показывают версию PHP, работают на ветках 5.x, 7.x и 8.0–8.1. Официальных релизов для них нет, для 7.4–8.1 выпустили только минимальные бэкпорты.

Node.js в тот же день

Node.js закрыл 10 уязвимостей в ветках 22, 24 и 26, четыре из них высокой критичности. Самая серьёзная — запись за границу буфера в распаковщике Brotli, которая может дать выполнение кода. Ещё две позволяют обойти проверку имени хоста в TLS-сертификате. Заодно из встроенного списка убрали скомпрометированный удостоверяющий центр eMudhra. Об остановке сервисов из-за Node.js не сообщалось, но обновиться стоит.

Деталь, которая может оказаться важнее самих багов: в PHP их нашла Wiz с помощью ИИ-моделей. По словам исследователей, ИИ в основном сократил работу по сборке нескольких багов в рабочую цепочку и подгонке эксплойта под разные сайты. Похоже, таких экстренных релизов станет больше.

Что сделать сегодня

— Проверить версию PHP на всех серверах, начиная с тех, что доступны из интернета. Нужны 8.2.35, 8.3.36, 8.4.27 или 8.5.12. Debian, Ubuntu и RHEL часто переносят исправление без смены номера версии, поэтому смотрите changelog пакета. — Обновить WordPress недостаточно: уязвим сам PHP. На хостинге его обновляет провайдер, стоит проверить, сделал ли он это. — Если обновиться сразу нельзя — WAF как временная мера, а CERT-EU советует изолировать такие серверы. Отключение одной настройки PHP, по оценке исследователей, проблему полностью не закрывает. — Обновить Node.js до 22.23.4, 24.22.1 или 26.12.1, в том числе в Docker-образах.

Вопрос к тем, кто отвечает за продакшен: вы бы выключили сайт до патча, как сделали в Нидерландах, или оставили бы его работать за WAF?

#PHP #Nodejs #безопасность #уязвимости #разработка #ИИ

Дыра в PHP: Европа на день выключила госсайты | Сетка — социальная сеть от hh.ru