+7 (995) 771-29-10

Новая уязвимость PHP: Что делать?

21 октября разработчики PHP выпустили срочное обновление: две критические уязвимости позволяют взломать сайт без пароля. Под угрозой WordPress, Joomla, Drupal, 1С-Битрикс и любые другие сайты на PHP. Рассказываем, как за полчаса проверить свой сайт и что делать, если он работает на хостинге, на своём сервере или на старой версии PHP.

ДатаЧтение7 минут
Новая уязвимость
PHP:
Что делать?
Изображение Cursiva: 34b756ab 29d1 4c38 b83b 3e8d5c1832fb 1024x1024

Если ваш сайт работает на PHP, а это почти любой сайт на WordPress, Joomla, Drupal или 1С-Битрикс, сегодня стоит потратить полчаса на проверку. 21 октября разработчики PHP выпустили срочное обновление: без него сайт можно взломать удалённо, не зная ни одного пароля.

Главное за минуту

Уязвимости CVE-2026-109618 и CVE-2026-109619 находятся в самом PHP, а не в CMS. Опасность оценена в 9,2 балла из 10.

Атакующий может запустить на сервере свой код или вытащить из памяти пароли, токены и ключи.

Безопасные версии: 8.2.35, 8.3.36, 8.4.27 и 8.5.12 или новее.

Для PHP 8.1 и старше официального обновления нет.

Обновление WordPress и плагинов проблему не решает.

 

Почему это касается почти всех

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

Уязвимость не зависит от кода сайта: исследователи взломали стандартные установки WordPress, Drupal и Joomla без входа в админку. Затронуты версии PHP начиная с 5.4 и все способы запуска: PHP-FPM, Apache с mod_php, php-cgi, LiteSpeed и FrankenPHP.

Изображение Cursiva: 01 timeline 1 300x169

Реакция была быстрой. По данным Reuters, в Нидерландах, Финляндии, Франции, Германии и Бельгии часть государственных сайтов временно отключили. Cloudflare уже видит первые атаки. После публикации исправления злоумышленникам проще разобраться, что именно закрыли, поэтому ближайшие дни самые рискованные.

Кто должен обновить PHP на вашем сайте

Первым делом выясните, где работает сайт. От этого зависит, кто устанавливает исправление.

Изображение Cursiva: 02 who updates 300x212

Если не помните, посмотрите письма и счета за хостинг. В них обычно написано, что вы арендуете: тариф виртуального хостинга или сервер (VPS, VDS, облачный, выделенный).

Как узнать версию PHP

Изображение Cursiva: 03 where version 300x187

Если сайтов несколько, проверьте каждый, включая поддомены: версии PHP у них могут отличаться.

Сравните с таблицей

Изображение Cursiva: 04 risk 300x208

Сайт на виртуальном хостинге

Системный PHP здесь обновляет провайдер, и сделать это за него вы не сможете. Ваша задача — получить от него ясный ответ и проверить сайт.

  1. Загляните в личный кабинет и почту: многие хостинги уже разослали уведомления.
  2. Если информации нет или она общая, напишите в поддержку. Пример письма — на схеме ниже.
  3. Если поддержка предлагает переключить сайт на другую версию PHP, сначала уточните у разработчика, совместим ли сайт с ней.
  4. После любых изменений откройте сайт и пройдите основные сценарии: заявка, корзина, загрузка файла, вход в админку.

Изображение Cursiva: 05 support chat 300x206

Текст письма, который можно скопировать

Здравствуйте! Сайт [домен] работает на PHP [версия]. Установлено ли для него исправление уязвимостей CVE-2026-109618 и CVE-2026-109619 от 21 октября 2026 года? Если нет, подскажите сроки и какие меры защиты действуют сейчас.

Некоторые провайдеры на время обновления ограничили загрузку файлов через формы. Если на сайте перестали прикрепляться файлы или картинки, сначала спросите поддержку, не связано ли это с защитными мерами.

Сайт на своём сервере

На VPS, VDS или выделенном сервере PHP обновляете вы или ваш администратор. Если сервер ведём мы, [ничего делать не нужно: мы обновим его и сообщим вам].

Изображение Cursiva: 06 server steps 300x153

Через панель управления

  • ISPmanager:обновите установленные версии PHP в разделе управления PHP, затем проверьте версию в параметрах сайта.
  • FASTPANEL:раздел «Настройки» → «Приложения», затем версия PHP в карточке сайта.
  • cPanel/WHM:установите системные обновления, пакеты PHP обновятся вместе с ними.
  • Plesk:«Инструменты и настройки» → «Обновления».

В разных версиях панелей пункты меню называются по-разному. Если не нашли нужный, напишите в поддержку панели или администратору.

Через терминал

Ubuntu и Debian:

sudo apt update && sudo apt upgrade
sudo systemctl restart php8.3-fpm      # подставьте свою версию
sudo systemctl restart apache2         # если PHP работает как модуль Apache

AlmaLinux, Rocky Linux, CentOS:

sudo dnf upgrade ‘php*’
sudo systemctl restart php-fpm
sudo systemctl restart httpd           # если используется Apache

Docker:

docker compose build —pull
docker compose up -d

Как убедиться, что исправление встало

Если PHP установлен из PPA ondrej/php, репозитория Remi или собран из исходников, команда php -v должна показать версию из таблицы выше или новее.

PHP из стандартных репозиториев Ubuntu, Debian и RHEL устроен иначе: дистрибутив встраивает исправление в старый номер версии. Тогда ищите номера CVE в журнале изменений пакета:

apt changelog php8.3-fpm | grep -E «CVE-2026-10961[89]»
rpm -q —changelog php-fpm | grep -E «CVE-2026-10961[89]»

Если номера нашлись, исправление на месте. И помните: php -v показывает версию для командной строки. Сайт может работать на другой версии, поэтому сверьтесь с панелью или со «Здоровьем сайта» в WordPress.

Если стоит PHP 8.1 или старше

Для старых веток официальных релизов нет. Масштаб большой: по данным Censys, на которые ссылается Reuters, примерно 1,5 млн из 2,6 млн проверенных серверов работают на версиях PHP, для которых исправления нет.

  1. Спросите поставщика.Некоторые дистрибутивы и поставщики расширенной поддержки переносят исправления в старые версии. Хостинг тоже может знать, есть ли такой вариант.
  2. Планируйте переход на PHP 8.2 или новее.Старые темы, плагины и самописный код могут не заработать сразу, поэтому переход сначала проверяют на копии сайта.
  3. До перехода включите временную защитуиз раздела ниже.

Для тех, кто собирает PHP из исходников, команда PHP выложила патчи для веток 7.4, 8.0 и 8.1.

Что защищает, а что только кажется защитой

 

Изображение Cursiva: 07 helps or not 300x186

Временные настройки нужны, только если обновить PHP прямо сейчас нельзя. Они перекрывают известные пути атаки, но не все. Задавать их нужно в php.ini или в настройках пула PHP-FPM, после чего перезапустить PHP. Через .user.ini или ini_set() они не сработают.

; php.ini или пул PHP-FPM
session.upload_progress.enabled = 0
post_max_size = 8M          ; 32M, если сайт принимает файлы
upload_max_filesize = 4M    ; меньше post_max_size
fatal_error_backtraces = 0  ; только для PHP 8.5

 

Ограничение размера запросов может сломать загрузку файлов на сайте. После установки исправления верните прежние значения.

Как понять, что сайт уже пытались взломать

Атака идёт ниже уровня CMS, поэтому в журналах сайта следов мало. Исследователи Wiz советуют искать:

  • ошибки «Allowed memory size exhausted» сразу после запросов с загрузкой файлов;
  • серии ответов с кодом 500 без видимой причины;
  • очень длинные или странные cookie PHPSESSID в ответах сервера;
  • частые перезапуски процессов PHP-FPM;
  • незнакомые PHP-файлы в папке сайта и новых пользователей с правами администратора.
sudo grep -i «allowed memory size» /var/log/php*fpm*.log
sudo find /var/www -name «*.php» -mtime -3

 

Нашли что-то подозрительное?

  • Не удаляйте подозрительные файлы сразу: сохраните копию журналов и файлов для разбора.
  • Смените пароли от сервера, базы данных, админки и почты, а также API-ключи.
  • Обратитесь к специалисту, который проверит сайт целиком.

Частые вопросы

У меня включены автообновления WordPress. Этого достаточно?

Нет. Автообновления обновляют WordPress, темы и плагины. PHP — это программа на сервере, и её обновляет хостинг или администратор.

Сайт маленький, кому он нужен?

Такие атаки автоматические: программы перебирают все сайты подряд и ищут уязвимую версию PHP. Взломанный сайт используют для рассылки спама, размещения вирусов или кражи данных клиентов.

Можно просто переключиться на PHP 8.4?

Можно, если сайт с ней совместим и на хостинге стоит исправленная сборка 8.4.27 или новее. Сама по себе ветка 8.4 не гарантирует защиту: важна именно исправленная версия.

Хостинг отключил загрузку файлов. Это надолго?

Обычно такие ограничения снимают после установки исправлений. Точные сроки знает поддержка провайдера.

Я не понимаю, что из этого мне делать.

Это нормально. Пришлите нам адрес сайта, и мы скажем, что нужно сделать в вашем случае.