Как закрыть PHP2Shell на HestiaCP: пошаговая инструкция
Найдите в наших частых вопросах ответ на всё, что захотите узнать.
Оставить заявку на консультациюHestiaCP
Короткая инструкция: как закрыть уязвимости PHP2Shell (CVE-2026-109618, CVE-2026-109619) на сервере с HestiaCP скриптом php2shell.sh. Скрипт проверяет и обновляет все установленные версии PHP разом, перезапускает службы и сравнивает ответы сайтов до и после. Подробный разбор с подводными камнями — в статье «PHP2Shell на HestiaCP: как мы закрыли 50 версий PHP за ночь».
Что нужно
- Debian 11/12/13 или Ubuntu 20.04/22.04/24.04/26.04, доступ root или sudo.
- PHP из репозитория Ondřej Surý (
deb.sury.org/ppa:ondrej/php) — так ставит PHP и HestiaCP; сама панель не обязательна. - Не меньше 1 ГБ свободного места в
/var.
Не подходит для CentOS/RHEL/AlmaLinux, cPanel, Plesk и BitrixVM.
Пошагово

Шаг 1. Скачайте и распакуйте
Скачайте архив php2shell-kit.tar.gz со страницы проекта на GitHub, загрузите на сервер и распакуйте:
tar xzf php2shell-kit.tar.gz && cd php2shell-kitШаг 2. Проверьте сервер
Режим check ничего не меняет — только показывает, какие версии PHP уязвимы.
sudo ./php2shell.sh check # проверка, ничего не меняетШаг 3. Установите исправления
Скрипт сделает снимок ответов сайтов, обновит все установленные пакеты php* и hestia-php, перезапустит php-fpm, Apache и панель и сравнит сайты с исходным снимком.
sudo ./php2shell.sh patch # патч, спросит подтверждение
sudo ./php2shell.sh patch --yes # без вопроса, для автоматизацииШаг 4. Убедитесь, что всё закрыто
Повторите проверку. В конце должно быть «ИТОГ: всё пропатчено».
sudo ./php2shell.sh checkПример вывода после патча:
php2shell.sh 1.0 (2026-10-23) | server.example.com | Ubuntu 22.04.5 LTS | amd64 | режим: check
PHP 7.4 1:7.4.33-31+ubuntu22.04.1+deb.sury.org+1 OK
PHP 8.2 8.2.35-1+ubuntu22.04.1+deb.sury.org+1 OK
PHP 8.3 8.3.36-1+ubuntu22.04.1+deb.sury.org+1 OK
hestia-php 8.5.12-1+ubuntu22.04 PHP 8.5.12 (cli)
ИТОГ: всё пропатченоШаг 5. Сохраните логи
Всё, что делал скрипт, лежит в /var/log/php2shell/: общий лог, лог apt и снимки сайтов до и после.
Как читать результат
| Код выхода | Что значит |
|---|---|
0 | всё пропатчено |
1 | остались уязвимые версии |
2 | ошибка или остановка |
Отдельно снять HTTP-коды всех сайтов HestiaCP можно командой:
sudo ./php2shell.sh sites # только снимок ответов сайтов HestiaCPЧастые вопросы
Сайты упадут во время патча?
Нет. Обновление идёт 15–30 минут на фоне, сайты при этом работают. Пауза — 1–2 секунды на перезапуск php-fpm.
Почему недостаточно посмотреть номер версии PHP?
Для старых веток (5.6–8.1) номер версии не меняется — меняется только ревизия пакета, например 7.4.33-30 → 7.4.33-31. Поэтому скрипт ищет исправление CVE в changelog пакета phpX.Y-common.
После патча осталось «УЯЗВИМ». Что делать?
Для этой версии PHP нет исправленной сборки под вашу ОС или архитектуру. Переведите сайты на PHP 8.2+ и удалите старую версию.
Скрипт пишет «Репозиторий PHP не обновился»
Обычно истёк ключ репозитория или нет сети. Смотрите строки E: в выводе. Скрипт в этом случае останавливается до установки — чтобы не сообщить об «успешном» обновлении, которого не было.
В итоге «Сайты: ЕСТЬ ИЗМЕНЕНИЯ»
Проверьте перечисленные домены вручную. Сайт, который отдавал 500 до патча, отдаст 500 и после — это не следствие обновления.
Как откатить обновление?
Не нужно: обновление идёт в пределах той же версии PHP (например, 8.2.33 → 8.2.35), конфиги PHP не перезаписываются.
А сама панель HestiaCP?
У панели свой PHP — пакет hestia-php. Скрипт обновляет и проверяет его отдельно и показывает версию в отчёте.
Можно ли запускать на сервере с BitrixVM или CentOS 7?
Нет, скрипт работает только с Debian/Ubuntu и репозиторием Ondřej Surý. Для CentOS 7 исправленной сборки PHP нет ни у кого: остаётся переезд на актуальную ОС, собственная сборка PHP или коммерческая расширенная поддержка.
Что сделать после патча?
Проверить сервер на следы атаки за период до обновления, начиная с 17 октября 2026 года: падения воркеров PHP, подозрительные файлы в веб-корнях, новые задания cron и SSH-ключи.
Нужна помощь?
Если не хотите запускать скрипт сами или сервер не на Debian/Ubuntu, мы проверим и обновим его за вас, а после — поищем следы атаки. Серверы клиентов на техподдержке мы обслуживаем сами. Оставьте заявку.