Новость

PHP2Shell: критические уязвимости PHP — обновитесь до 8.5.12, 8.4.27, 8.3.36 или 8.2.35

21 октября 2026 года PHP закрыл две критические уязвимости CVE-2026-109618 и CVE-2026-109619 (CVSS 9.2): выполнение кода без авторизации на любом сервере с PHP. Кого задевает, до каких версий обновляться и что делать, если обновиться сразу нельзя.

21 октября 2026 г.
2 мин чтения
PHP2Shell: критические уязвимости PHP — обновитесь до 8.5.12, 8.4.27, 8.3.36 или 8.2.35

21 октября 2026 года команда PHP выпустила PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35 с исправлением двух критических уязвимостей — CVE-2026-109618 и CVE-2026-109619. Обе оценены в 9.2 по CVSS v4.0 и позволяют выполнить код на сервере без авторизации. Уязвимости прозвали PHP2Shell. Команда PHP призывает обновиться немедленно.

Что случилось

По данным Хабра, подробности утекли раньше запланированного раскрытия, и часть администраторов на время выключила сайты, чтобы поставить исправления вручную. Среди них — Internet Archive и реестр доменов .de. Аналитики Sansec ожидают, что массовые атаки начнутся в течение 15 минут после выхода патчей.

  • CVE-2026-109618 — выполнение кода через нехватку памяти. Обработка ошибки «закончилась память» может прервать PHP, когда внутренние данные запроса инициализированы лишь частично, а очистка после запроса затем считает эти данные корректными.
  • CVE-2026-109619 — выполнение кода через устаревшее глобальное состояние. Состояние запроса может пережить освобождение памяти, и следующий запрос в том же процессе успевает им воспользоваться до штатной инициализации.

Кто под угрозой

Все установки PHP, которые обрабатывают веб-запросы: PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Сильнее всего рискуют серверы с mod_php: для них показан эксплойт, при котором запрос без авторизации запускает атаку ещё до того, как выполнится код приложения. Это касается и сайтов на Magento, Laravel, WordPress, OpenCart — любой платформы на PHP.

Что делать сейчас

  1. Обновить PHP до 8.5.12, 8.4.27, 8.3.36 или 8.2.35. Дистрибутивы Linux и поставщики LTS получили исправления заранее — проверьте обновлённые пакеты у своего поставщика или хостинга.
  2. PHP 8.1 и старше проект PHP больше не обновляет. Для 7.4, 8.0 и 8.1 команда выложила минимальные исправления в исходниках php-src; надёжнее — перейти на поддерживаемую версию.
  3. Перезапустить все процессы PHP после обновления и проверить, что работает новая версия.

Если обновиться сразу нельзя

Команда PHP перечисляет временные меры. Они закрывают известные пути атаки, но не делают сервер безопасным — полностью уязвимости устраняет только обновление.

  • Для CVE-2026-109618: memory_limit=-1 так, чтобы приложение не могло его переопределить (например, php_admin_value в пуле FPM или конфигурации Apache), и низкий post_max_size — 8M, а если нужны загрузки файлов, 32M; upload_max_filesize — меньше post_max_size. Лимиты размера и числа полей, заголовков и частей запроса стоит включить и на веб-сервере или прокси, в том числе для запросов без Content-Length. RLIMIT_AS и RLIMIT_DATA не подходят.
  • Для CVE-2026-109619: session.upload_progress.enabled=0 в php.ini, пуле FPM или конфигурации сервера (не через ini_set() и не в .user.ini), на PHP 8.5 — ещё fatal_error_backtraces=0; после этого перезапустить все процессы.

Мы работаем с PHP и Magento больше десяти лет. Проверим, какая версия PHP и в каком режиме работает на вашем сервере, обновим её или поставим временные меры, а со старых веток переведём на поддерживаемую версию — с тестовым стендом и планом отката.

Источники: объявление команды PHP, GHSA-w8hw-w9fx-j79w, GHSA-6wmf-4rv5-p3rp, новость на Хабре.

Чем можем помочь

-5%
Специальное предложение
Дополнительная скидка по промокоду на любой проект
FIRST5
Получить скидку
Поделиться

Читайте также