Удалённые API, конфликты пакетов, недостающие расширения и ошибки шлюза могут блокировать исправление PHP2Shell. Восстановите работу на исправленном PHP и проверьте обе CVE.

01

Нет mysql_*, each или create_function

Определите PHP запроса. ext/mysql удалён в PHP 7, each()/create_function() в PHP 8. Обновите компонент или исправьте на копии. PDO/mysqli должны сохранить параметры и транзакции. Не делайте слепых замен и не ставьте неизвестные патчи.

02

TypeError и несовместимые сигнатуры

Сохраните полную ошибку и стек закрыто. Сравните переопределения с родителем/интерфейсом и новыми правилами. Обновите пакет или исправьте с тестом. Не удаляйте типы массово и не публикуйте подробности.

03

Динамические свойства в PHP 8.2

Устаревание не доказывает RCE или взлом. Найдите класс и используйте поддерживаемую версию или явное исправление. Испытайте сериализацию и ORM. Логируйте закрыто, устраняйте причину; подавление всего не исправляет PHP2Shell.

04

Конфликт платформы Composer

Сохраните composer.json/lock; проверьте пакеты и check-platform-reqs --lock на доверенной копии. prohibits найдёт блокировку. config.platform лишь моделирует решение, не меняет PHP. --ignore-platform-reqs не доказывает совместимость. Проверьте новый lock до запуска.

05

Нет расширения или драйвера

Сравните INI/модули CLI и Web/FPM отдельно. Установите доверенную сборку для PHP, архитектуры, NTS/ZTS в нужную службу. Контролируемо перезапустите процессы и проверьте функцию/соединение. CLI не подтверждает Web.

06

502, пустая страница или старый PHP

Сопоставьте журналы upstream, старта FPM и приложения. Проверьте сокет/порт, права, службу и бинарник; расширение может мешать запуску. Валидируйте до reload и сохраните логи. Один 502 не доказывает атаку.

07

Кодировка, ссылки и данные

Отдельно проверьте кодировку исходников, charset/collation БД, экспорт, rewrite и хранилище. Отрепетируйте GBK/UTF-8, сравните поля, вложения, URL. Не заменяйте строки массово в сериализованных значениях. Сохраните пути или проверьте перенаправления.

Проверить исправления 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-сайте без разработчика ↗← К руководствам по приложениям