PHP2Shell: две критические дыры в PHP, обновитесь сегодня
21 октября 2026 года PHP выпустил экстренные патчи для двух критических уязвимостей PHP2Shell, которые дают выполнить чужой код на сервере без входа в админку. Cloudflare видела атаки ещё до выхода исправлений. Если ваш сайт работает на PHP, проверить его версию нужно сегодня: обновление CMS эту дыру не закрывает.
Источник: BleepingComputer





Что случилось
21 октября 2026 года проект PHP выпустил экстренные обновления безопасности. Они закрывают две критические уязвимости в самом интерпретаторе PHP: CVE-2026-109618 и CVE-2026-109619. Вместе их называют PHP2Shell.
Это не плагин и не тема. Дыра сидит в языке, на котором работает ваш сайт, поэтому обновление движка сайта её не закрывает. Закрывает только новая версия PHP на сервере.
Обе ошибки позволяют выполнить чужой код на сервере без пароля и без входа в админку. По данным разработчиков PHP, для этого достаточно специально собранного запроса. Подробности механики в этой заметке не нужны: важно, что вход открыт любому посетителю.
Факты и цифры
- Оценка обеих уязвимостей по CVSS 4.0: 9,2 из 10, критический уровень. Это данные Fortinet и SecurityLab; сам BleepingComputer баллы не приводит.
- Исправленные версии: PHP 8.2.35, 8.3.36, 8.4.27 и 8.5.12. Уязвимы все предыдущие выпуски этих веток.
- Под угрозой любой PHP, который отвечает на веб-запросы: PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP, LiteSpeed. Разработчики PHP считают самым опасным вариантом mod_php: там, по их словам, запрос может сработать ещё до запуска кода приложения.
- Ветки PHP 8.1 и старше официальных обновлений больше не получают. Для 7.4, 8.0 и 8.1 опубликованы минимальные исправления исходного кода, но это не полноценный выпуск.
- Первая из ошибок связана с нехваткой памяти при обработке запроса. Вторая оставляет в рабочем процессе «хвост» от прошлого запроса, и следующий запрос может им воспользоваться.
- Нашли дыры исследователи Wiz, Calif и OpenAI. По данным Wiz, первую проблему обнаружили 19 августа, а команде PHP сообщили 24 августа.
- Масштаб: сканирование Censys 22 октября нашло около 36,7 млн интернет-сервисов с потенциально уязвимыми версиями PHP. Это сервисы, а не компании, и часть из них могла получить исправление без смены номера версии.
Атаки уже идут
Технический директор Cloudflare Дейн Кнехт подтвердил, что компания видела первые атаки на обе уязвимости ещё до выхода патчей. Cloudflare включила защитные правила, но назвала их временными.
По данным Fortinet, Patchstack 21 октября получила от хостинг-провайдеров сведения об активных атаках. Cloudflare же заметила, что атакующие меняют запросы, чтобы обходить правила фильтра.
Данные расходятся. Tenable пишет, что публичный эксплойт не срабатывает на установке с настройками по умолчанию, а другие источники говорят об атаках. Безопаснее исходить из худшего: код для атаки уже существует.
Национальный центр кибербезопасности Великобритании призвал организации обновить PHP немедленно или отключить такие системы до обновления. В Нидерландах, по данным SecurityLab, на время отключали часть государственных сервисов в качестве меры предосторожности. Это не значит, что их взломали.
Что это значит для бизнеса
Если сайт на 1С-Битрикс, WordPress, Drupal, Joomla или самописный, он, скорее всего, работает на PHP. Значит, вопрос «затронут ли мы» сводится к другому: какая версия PHP стоит на сервере и кто за неё отвечает.
Отдельно про Битрикс: ни в одном из найденных источников уязвимость в связке с Битриксом не разбирается. Мы не нашли официального заявления 1С-Битрикс по этой теме. Поэтому про совместимость новой сборки PHP с вашей версией продукта нужно спрашивать у разработчика или хостинга, а не гадать.
Чем рискует владелец. Выполнение чужого кода на сервере означает возможную установку вредоносных скриптов, кражу базы заказов и заявок, подмену страниц, рассылку спама с вашего адреса. Следом приходят предупреждения браузера и просадка в поиске.
Если вы на виртуальном хостинге, PHP обновляет хостер. Если на своём сервере или VPS, обновлять нужно вам или вашему подрядчику. Для старых PHP 7.4, 8.0 и 8.1 ждать готового выпуска бесполезно: нужен либо перенос на поддерживаемую ветку, либо поставщик, который выпускает исправления.
Как подготовиться и что сделать
- Узнайте версию PHP, которая реально обслуживает сайт. В панели хостинга она обычно указана в настройках PHP. Номер на сервере и в панели может отличаться.
- Сравните её с исправленными: 8.2.35, 8.3.36, 8.4.27, 8.5.12. Версия ниже в той же ветке уязвима.
- Учтите нюанс: дистрибутивы Linux часто переносят исправления в старые пакеты без смены номера версии. Поэтому
php -vможет показывать устаревшую цифру на уже защищённом сервере. Спросите хостера письменно: «закрыты ли CVE-2026-109618 и CVE-2026-109619». - Сделайте резервную копию файлов и базы, затем обновите PHP и перезапустите службу, которая его запускает (PHP-FPM или Apache). Без перезапуска старые процессы продолжат работать.
- Проверьте, что сайт, корзина и формы работают на новой версии. Для Битрикса это отдельная проверка: после смены версии PHP посмотрите журнал ошибок.
- Если обновиться сегодня нельзя, временные меры из рекомендаций PHP: отключить
session.upload_progress.enabledи ограничить размер запросовpost_max_size. Разработчики PHP прямо пишут, что эти меры полностью не защищают, а настоящая защита одна: патч. - Посмотрите журналы за последние дни: необычные multipart-запросы, повторяющиеся ошибки 500, внезапные падения процессов, новые или изменённые файлы. Установка патча не выгонит того, кто уже зашёл.
Фильтр вроде Cloudflare WAF не заменяет обновление: атакующие уже подбирают обходы.
Коротко
- В PHP закрыты две критические дыры, 9,2 из 10, выполнение чужого кода без входа.
- Нужны PHP 8.2.35, 8.3.36, 8.4.27 или 8.5.12. Обновление CMS не помогает.
- Атаки фиксировали ещё до выхода патча.
- PHP 8.1 и старше официальной поддержки не имеет: нужен переезд на поддерживаемую ветку.
- Сегодня: узнать версию, спросить хостинг, обновить, перезапустить, проверить журналы.