Если PHP-разработчика нет, восстановите доступ, проверьте резервные копии и определите среду. Затем выберите исправленный PHP, миграцию или статический архив для устранения PHP2Shell.

01

Верните доступ и ответственность

Найдите регистратора, хостинг, сервер/панель, код, доступ к БД и плательщика. Назначьте ответственного за обслуживание и восстановление. Определите приложение и точную версию по локальным файлам. Верните недостающие учётные записи и исходники до смены PHP.

02

Сохраните доказательства и проверьте восстановление

При подозрении сохраните журналы до очистки. Код, БД, загрузки, настройки и задачи сохраняйте датированным зашифрованным комплектом с ограниченным доступом. Запишите кодировку и внешнее хранилище. Восстановите приватно, проверьте контент и вход; сообщения об успехе мало.

Патч не исключает взлом ↗

03

Разберите переходы поколений PHP

PHP 5.3/5.6 может использовать удалённые API. PHP 7 удаляет ext/mysql; PHP 8 удаляет each()/create_function() и ужесточает типы/сигнатуры; PHP 8.2 устаревает динамические свойства. Читайте каждую миграцию. Исторический минимум не рекомендует неподдерживаемый PHP и не проверяет собственный код.

04

Выберите ремонт, миграцию или архив

Подтверждённый патч поставщика может дать время; нужны оба CVE и поддержка. Старому PHP нужен поддерживаемый целевой выпуск, не вечное исключение WAF. Управляемое приложение ремонтируйте, заброшенные зависимости заменяйте; для контента возможен статический архив с заменой входа, поиска и форм.

05

Создайте реалистичный приватный стенд

Согласуйте Web PHP, расширения, INI, БД и маршруты с целью. Обезличенные копии закройте; исключите настоящие письма, платежи и production-webhooks. Проверяйте framework, плагины и свой код вместе. Сохраняйте бизнес-приёмку и логи; запросите их у хостера.

06

Планируйте откат с учётом записей

Храните согласованные файлы и БД. Смена PHP обратно не откатит схему. Согласуйте остановку записи или проверенную синхронизацию, критерии отказа, оператора и срок. Учтите новые заказы после снимка, испытайте восстановление и сверку.

07

Проверьте реальные службы после перехода

Проверьте Web PHP, все FPM, очереди, задачи, контейнеры и реплики; замените старые процессы. Подтвердите оба CVE версией или бюллетенем. Испытайте глубокие ссылки, вход, загрузки и бизнес. Сохраните логи и окно отката; CLI и главной страницы мало.

Проверить исправления PHP2Shell ↗

Проверка функций после устранения PHP2Shell

Вход, сессии и роли

Проверьте вход, выход и сброс пароля тестовой учётной записи; сессии, администратора и роли.

Глубокие ссылки и HTTP

Откройте глубокую ссылку, отправьте форму и запросите отсутствующую страницу; сравните параметры, перенаправления и HTTP.

Чтение/запись БД

Читайте/пишите данные в тестовой БД; проверьте драйверы, строгий SQL, транзакции и сохранность значений.

Свои шаблоны и экранирование

Отобразите статьи, списки, кабинет и ошибки; проверьте теги, экранирование, кеш и предупреждения.

Загрузки и миниатюры

Загрузите безопасное изображение, получите миниатюру и удалите; проверьте права, пути и URL, сохраняя запрет исполняемых файлов.

Новые и старые задания

Обработайте новое и старое задание новым процессом; проверьте сериализацию, повторы и отсутствие дубликатов.

Расписание и пути PHP

Проверьте реальный PHP, INI и пользователя планировщика; выполните безопасную задачу и сравните после обновления.

Холодный/тёплый кеш и OPcache

Пересоберите кеши по документации; проверьте холодные/тёплые запросы и удалите старые сериализации и процессы OPcache.

Тестовая почта

Отправьте письма в тестовый сборщик; проверьте шаблоны, очередь и транспорт без реальных клиентов.

Заказы, налоги и остатки

Оформите тестовый заказ с доставкой, налогом, скидкой и возвратом; сравните суммы, остатки и историю.

Тестовые платежи и уведомления

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

Сайты, домены и языки

Проверьте все сайты, домены и языки с нужной ролью; cookies, URL и настройки.

GBK/UTF-8 и проверка данных

Проверьте символы через формы, БД и экспорт; сохраняйте GBK/UTF-8 до отдельной проверенной конвертации.

Контракты API и callbacks

Проверьте API с/без авторизации; сравните типы JSON, ошибки, HTTP и callbacks.

Расширения Web/CLI и ABI

Проверьте расширения Web/CLI с нужными ABI/NTS/ZTS; испытайте драйверы и службы.

Проверить исправления PHP2Shell

Совместимость приложения, его поддержка и безопасность PHP проверяются отдельно. Выберите поддерживаемую ветку с исправлениями обеих CVE и проверьте Web-процессы, задания и реплики. Обновление плагина не заменяет PHP.

Четыре ветки. Ясная цель обновления.
Ветка PHPИсходные версии нижеПервая исправленная версияКонец обновлений безопасности
PHP 8.5< 8.5.12✓ 8.5.1231 дек. 2029 г.
PHP 8.4< 8.4.27✓ 8.4.2731 дек. 2028 г.
PHP 8.3< 8.3.36✓ 8.3.3631 дек. 2027 г.
PHP 8.2< 8.2.35✓ 8.2.3531 дек. 2026 г.
Используете PHP 8.1 или старше?

Обычных выпусков PHP для этих веток нет. Минимальные бэкпорты исходников доступны для 7.4, 8.0 и 8.1. Поддержку поставщика проверяйте отдельно. Читать руководство ↗

Первоисточник

PHP security teamПервоисточник ↗CVE-2026-109618Первоисточник ↗CVE-2026-109619Первоисточник ↗PHP 7.0Первоисточник ↗PHP 8.0Первоисточник ↗PHP 8.2Первоисточник ↗PHPПервоисточник ↗ComposerПервоисточник ↗
Устранение PHP2Shell - ошибки обновления PHP ↗← К руководствам по приложениям