
Что произошло
21 октября команда PHP выпустила срочные обновления и опубликовала предупреждение безопасности. Уязвимости нашли исследователи компаний Wiz, Calif и OpenAI с помощью ИИ-моделей. Исследование получило название PHP2Shell.
Ошибки находятся в самом PHP, а не в CMS или плагинах. Поэтому уязвим даже сайт, в коде которого нет ни одной проблемы. Затронуты практически все версии PHP за последние десять лет, начиная с 5.4, и все способы запуска: PHP-FPM, Apache с mod_php, php-cgi, LiteSpeed, FrankenPHP. Сильнее всего рискуют серверы с Apache и mod_php.
По данным Reuters, 21 октября государственные сайты в Нидерландах, Финляндии, Франции и других странах временно отключили в качестве меры предосторожности. Cloudflare сообщает о первых атаках. Исправления и технические подробности уже опубликованы, поэтому злоумышленники быстро научатся использовать уязвимости. Откладывать проверку не стоит.
Что делать?
Шаг 1. Узнайте, где размещён сайт и какая у него версия PHP
От этого зависит, кто и как будет устанавливать исправление.

Три способа узнать версию PHP
Панель хостинга. Версия обычно указана в настройках сайта или домена.
WordPress. «Инструменты» → «Здоровье сайта» → вкладка «Информация» → раздел «Сервер» → «Версия PHP».
Не нашли? Напишите в поддержку хостинга, разработчику сайта или нам.
Как понять, какой у вас хостинг:
Вы платите за тариф хостинга и управляете сайтом только через личный кабинет — это виртуальный хостинг.
В договоре или счёте написано VPS, VDS, облачный или выделенный сервер, и у вас (или администратора) есть IP-адрес и пароль root — это собственный сервер.
Шаг 2. Выберите свой сценарий

Схема действий для разных случаев
Сценарий 1. Сайт на виртуальном хостинге
На виртуальном хостинге системный PHP обновляет провайдер. Самостоятельно установить исправление не получится, но можно и нужно убедиться, что его установили.

1. Проверьте версию PHP для каждого сайта и поддомена.
2. Прочитайте новости хостинга: письма, уведомления в личном кабинете, раздел новостей на сайте провайдера.
3. Напишите в поддержку и спросите, установлено ли исправление для вашей версии PHP. Если нет — уточните сроки и какие меры защиты действуют сейчас.
4. Если хостинг предлагает переключиться на исправленную версию, переключитесь.
5. Проверьте сайт: формы, корзину, загрузку файлов, вход в админку.
Шаблон обращения в поддержку (можно скопировать):
Здравствуйте! Мой сайт [домен] работает на PHP [версия]. Подскажите, пожалуйста, установлено ли для этой версии исправление уязвимостей CVE-2026-109618 и CVE-2026-109619 от 21 октября 2026 года? Если ещё нет, когда планируется обновление и какие меры защиты действуют сейчас?
Некоторые хостинги временно ограничили механизм upload_progress и загрузку файлов через формы. Если перестали работать формы или загрузка картинок, причина может быть в этом, а не в поломке сайта. Уточните у поддержки.
Сценарий 2. VPS, VDS или выделенный сервер
Здесь за обновление отвечаете вы или ваш системный администратор. Если сервер обслуживает наша компания, напишите нам — мы обновим PHP и проверим сайт.

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

Ubuntu / Debian:
php -v
sudo apt update && sudo apt upgrade
sudo systemctl restart php8.3-fpm # замените 8.3 на свою версию
sudo systemctl restart apache2 # если используется Apache с mod_php
php -v AlmaLinux / Rocky / CentOS:
php -v
sudo dnf upgrade 'php*'
sudo systemctl restart php-fpm
sudo systemctl restart httpd # если используется Apache Docker: обновите базовый образ PHP и пересоберите контейнеры.
docker compose build --pull
docker compose up -d Важно про номер версии
Команда php -v показывает версию для командной строки. Сайт может работать на другой версии, поэтому сверяйтесь с панелью или с WordPress («Здоровье сайта»).
Ubuntu, Debian, RHEL и другие дистрибутивы часто переносят исправление в старый номер версии. Например, у PHP из стандартного репозитория Ubuntu номер не станет 8.3.36, но исправление будет внутри. В этом случае проверьте журнал изменений пакета:
apt changelog php8.3-fpm | grep -E "CVE-2026-10961[89]" # Ubuntu / Debian
rpm -q --changelog php-fpm | grep -E "CVE-2026-10961[89]" # AlmaLinux / RockyЕсли команда находит номера CVE, исправление установлено.
Проверьте журналы сервера
Исследователи Wiz советуют обратить внимание на такие признаки:
ошибки нехватки памяти (Allowed memory size exhausted) сразу после POST-запросов с загрузкой файлов;
всплески ответов с кодом 500;
необычно длинные или «мусорные» cookie PHPSESSID в ответах сервера;
частые перезапуски процессов PHP-FPM;
новые незнакомые PHP-файлы в папке сайта и новые администраторы в CMS.
Пути к журналам и папке сайта на вашем сервере могут отличаться. Если нашли подозрительное, не удаляйте следы: сохраните копию журналов, смените пароли (сервер, база данных, админка) и обратитесь к специалисту.
Сценарий 3. Старая версия PHP (8.1 и ниже)
PHP 8.1 и более старые ветки официально не поддерживаются, готовых обновлений для них нет. Таких серверов много: по данным Censys, которые приводит Reuters, около 1,5 млн из 2,6 млн проверенных серверов работают на версиях PHP без исправления.

1. Спросите хостинг или поставщика ОС. Некоторые дистрибутивы и поставщики расширенной поддержки переносят исправление в старые версии.
2. Перейдите на PHP 8.2 или новее. Старые темы и плагины могут перестать работать, поэтому сначала проверьте сайт на копии.
3. Пока исправления нет, включите временные меры (см. следующий раздел).
Команда PHP опубликовала исходные патчи для 7.4, 8.0 и 8.1. Они подходят только тем, кто собирает PHP из исходного кода.
Если обновить прямо сейчас нельзя
Эти меры снижают риск, но не устраняют уязвимость. Они для собственных серверов: на виртуальном хостинге настройками управляет провайдер.
В php.ini или в настройках пула PHP-FPM отключите session.upload_progress.enabled и перезапустите PHP. Настройка через .user.ini или ini_set() не работает.
Уменьшите post_max_size: 8M, если сайту не нужна загрузка файлов, или 32M, если нужна. Значение upload_max_filesize должно быть меньше post_max_size.
Для PHP 8.5 дополнительно установите fatal_error_backtraces = 0.
Включите WAF: Cloudflare и другие сервисы уже добавили правила против этих атак.
Если сайт хранит персональные данные или принимает платежи, а обновить его в ближайшие часы нельзя, временно переведите сайт в режим обслуживания.
; php.ini или пул PHP-FPM
session.upload_progress.enabled = 0
post_max_size = 8M
upload_max_filesize = 4MОграничения на загрузку файлов могут сломать формы и загрузку картинок. Не забудьте вернуть прежние значения после установки исправления.
Исправленные версии PHP

Чек-лист
☐ | Узнал(а), где размещён сайт: виртуальный хостинг или свой сервер |
☐ | Узнал(а) версию PHP для каждого сайта и поддомена |
☐ | Получил(а) от хостинга подтверждение, что исправление установлено, или обновил(а) PHP сам(а) |
☐ | Перезапустил(а) PHP-FPM или веб-сервер |
☐ | Убедился(ась), что версия исправленная или пакет содержит исправление |
☐ | Проверил(а) журналы на подозрительную активность |
☐ | Проверил(а) работу сайта: формы, корзина, загрузка файлов, админка |
☐ | Для PHP 8.1 и ниже: запланировал(а) переход на 8.2+ или получил(а) исправление от поставщика |

Интересует похожий проект?
Всё очень просто!


