Как закрыть 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.

Пошагово

Три шага закрытия PHP2Shell на HestiaCP скриптом php2shell.sh: проверка check, патч patch, повторная проверка

Шаг 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, мы проверим и обновим его за вас, а после — поищем следы атаки. Серверы клиентов на техподдержке мы обслуживаем сами. Оставьте заявку.

Не нашли ответ?

Оставьте заявку — проконсультируем по вашему вопросу.

Оставить заявку на консультацию