21 октября 2026 года разработчики PHP сообщили о двух критических уязвимостях, получивших название PHP2Shell. Обе проблемы позволяют злоумышленникам потенциально выполнять произвольный код на сервере без авторизации.
Уровень опасности — 9,2 из 10 по CVSS 4.0. Уязвимости затрагивают непосредственно PHP, поэтому под угрозой могут оказаться сайты независимо от используемой CMS: WordPress, 1С-Битрикс, Joomla, Drupal и других систем.
В чём заключается опасность?
Обнаруженные уязвимости связаны с ошибками управления памятью и внутренним состоянием запросов PHP:
- CVE-2026-109618 — ошибка обработки нехватки памяти, потенциально приводящая к удалённому выполнению кода.
- CVE-2026-109619 — некорректная работа с внутренним состоянием запросов, позволяющая повторно обращаться к уже освобождённой памяти.
Успешная эксплуатация уязвимостей может привести к краже данных, изменению файлов сайта или получению злоумышленником доступа к серверу в пределах прав процесса PHP.
Проблема затрагивает различные способы запуска PHP, включая PHP-FPM, Apache mod_php и CGI. Наибольший риск разработчики отмечают для конфигураций с Apache mod_php.
Какие версии PHP необходимо обновить?
21 октября разработчики выпустили обновления безопасности для поддерживаемых веток PHP.
| Ветка PHP | Минимальная исправленная версия |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
| PHP 8.1 и ниже | Переход на поддерживаемую версию |
Важно! Некоторые дистрибутивы Linux и хостинг-провайдеры самостоятельно переносят исправления безопасности в более старые версии PHP. Поэтому ориентироваться исключительно на номер версии, отображаемый через php -v, неправильно. Необходимо проверять версию системного пакета и уведомления его поставщика.
Как защитить свой сайт?
- Определите версию PHP, которую фактически использует сайт.
- Проверьте наличие обновлений безопасности у хостинг-провайдера или поставщика PHP.
- Сделайте резервную копию сайта и конфигурации сервера.
- Установите исправления и перезапустите соответствующий обработчик PHP.
- Проверьте работу сайта и журнал ошибок после обновления.
Обновление CMS, установка антивируса или использование межсетевого экрана не заменяют исправление самого PHP.
Пример обновления PHP на Ubuntu 24.04
В качестве примера рассмотрим Ubuntu 24.04 LTS со стандартным системным PHP 8.3.
Сначала обновим список пакетов:
sudo apt update
Проверим установленную и доступную версии PHP-FPM:
apt-cache policy php8.3-fpm
Если PHP 8.3 установлен и используется через PHP-FPM, обновим его основные пакеты:
sudo apt install --only-upgrade php8.3-common php8.3-cli php8.3-fpm
После обновления перезапустим PHP-FPM:
sudo systemctl restart php8.3-fpm
Если вместо PHP-FPM используется модуль Apache mod_php, необходимо обновить установленный модуль:
sudo apt install --only-upgrade libapache2-mod-php8.3 sudo apache2ctl configtest sudo systemctl restart apache2
Проверить установленную версию пакета можно командой:
dpkg-query -W php8.3-fpm libapache2-mod-php8.3
Для Ubuntu 24.04 LTS компания Canonical выпустила исправление в пакете 8.3.6-0ubuntu0.24.04.13. Хотя сам PHP по-прежнему отображает версию 8.3.6, необходимые исправления безопасности уже включены.
Приведённые команды относятся к стандартным пакетам Ubuntu. При использовании сторонних репозиториев, панелей управления хостингом или самостоятельно собранного PHP порядок обновления может отличаться.
Заключение
Уязвимости PHP2Shell представляют серьёзную угрозу для веб-сайтов. Независимо от используемой CMS рекомендуется проверить установленную версию PHP и своевременно применить исправления безопасности.
Официальные источники:
Комментарии