21 октября 2026 года проект PHP выпустил исправления для двух критических уязвимостей в самом PHP. Обеим присвоен рейтинг CVSS 9.2, а исследователи, обнаружившие их, называют их php2shell. Проблема заключается не в PrestaShop или каком-либо модуле, но поскольку каждый магазин PrestaShop работает на PHP, это затрагивает практически каждый магазин. Ниже рассказывается о том, что происходит, какие версии PHP исправлены и что вам следует сделать сегодня.
В чем проблема?
Две уязвимости находятся в среде выполнения PHP — слое, который работает до выполнения собственного кода PrestaShop. Согласно анонсу, злоумышленник может использовать их для сбоя процессов PHP, чтения конфиденциальных данных или, в худшем случае, для выполнения кода на вашем сервере без входа в систему.
- CVE-2026-109618: когда в PHP заканчивается память, данные запроса могут остаться наполовину инициализированными, и последующая очистка обрабатывает эти неполные данные как действительные.
- CVE-2026-109619: состояние внутреннего запроса может сохраниться после освобождения памяти, поэтому последующий запрос к тому же воркеру PHP может использовать это устаревшее состояние.
Риску подвержена любая установка PHP, обслуживающая веб-запросы: PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Наивысший риск у mod_php.
Почему обновление PrestaShop не помогает
Обновление PrestaShop или ваших модулей не исправляет это. Защита внутри приложения не может остановить атаку, которая происходит до выполнения кода приложения. Единственное реальное исправление — это обновленная версия PHP на вашем сервере.
Какие версии PHP исправлены?
| Ветка PHP | Исправленная версия |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
Для PHP 7.4, 8.0 и 8.1 проект PHP опубликовал минимальные бэкпорты. Обратите внимание, что дистрибутивы Linux иногда применяют исправление без изменения номера версии, поэтому версия, которая выглядит старой, все равно может быть пропатчена. Именно поэтому вам следует запросить подтверждение у вашего хостинга, а не полагаться только на номер.
Что вам следует сделать сейчас
1. Проверьте свою версию PHP
В бэк-офисе PrestaShop перейдите в раздел Дополнительные параметры > Информация. Там вы увидите, на какой версии PHP работает ваш магазин.
2. Запросите у хостинга письменное подтверждение
Свяжитесь с вашим хостинг-провайдером и уточните, применено ли к вашему серверу исправление для CVE-2026-109618 и CVE-2026-109619. Запросите ответ в письменном виде.
3. Вы сами управляете своим сервером?
- Установите обновленные пакеты PHP из вашего дистрибутива или официальных релизов PHP.
- Перезапустите каждый процесс PHP: пулы PHP-FPM, Apache, LiteSpeed и воркеры FrankenPHP. Установленное, но не загруженное обновление не защищает вас.
- В день релиза проект PHP не рекомендовал ждать репозиторий
rpms.remirepo.net, поддерживаемый волонтерами, и рекомендовал пакеты дистрибутива или сборку из исходного кода. - Используете Docker? Пересоберите свои образы на обновленном базовом образе и разверните их снова.
4. Все еще используете PHP 8.1 или более старую версию?
Уточните у хостинга, была ли пропатчена ваша версия PHP. Обновление PrestaShop до версии, поддерживающей более новый PHP, — это отдельная долгосрочная задача, а не экстренное исправление. Для планирования: PrestaShop 9 поддерживает PHP с 8.1 по 8.5, а поддержка PHP 8.2 заканчивается 31 декабря 2026 года. Магазины на PrestaShop 1.7 и 8.x обычно до сих пор работают на PHP 7.x или 8.1.
Временные меры, если вы пока не можете обновиться
Эти меры предназначены для технических команд. Сначала протестируйте их на тестовой копии; они снижают риск, но не заменяют обновление PHP.
Для CVE-2026-109618:
- Уменьшите
post_max_size: в рекомендациях указано8M, если ваш магазин не принимает загрузки, и32M, если принимает. Значениеupload_max_filesizeдолжно быть ниже этого предела. - Также настройте ограничения размера запросов на вашем веб-сервере или обратном прокси.
Для CVE-2026-109619:
- Установите
session.upload_progress.enabled=0вphp.ini, пуле PHP-FPM или конфигурации сервера и перезапустите все воркеры. Использованиеini_set()или.user.iniнедостаточно. - В PHP 8.5 также установите
fatal_error_backtraces=0и перезапустите воркеры.
Скрытие ошибок с помощью error_reporting, display_errors или @ не помогает. Полный список мер содержится в официальном бюллетене по безопасности PHP.
Помогает ли брандмауэр веб-приложений (WAF)?
Cloudflare развернул специальные правила WAF для php2shell, которые включены по умолчанию с 21 октября. На платном тарифном плане убедитесь, что управляемый набор правил настроен на блокировку (block). Имейте в виду, что WAF защищает только тот трафик, который проходит через него: убедитесь, что ваш сервер принимает веб-трафик только от вашего провайдера WAF. WAF — это дополнительный уровень защиты, а не замена обновлению PHP.
Нужна помощь?
Не уверены, пропатчен ли ваш сервер, или все еще используете старую версию PHP? Мы проверим версию и конфигурацию вашего PHP, зададим правильные вопросы вашему хостингу и поможем спланировать переход на поддерживаемую версию PHP и PrestaShop. Узнайте больше о нашей услуге безопасности, запланируйте обновление или задайте нам вопрос.
Источник: «Critical PHP security updates: what PrestaShop users need to know» на build.prestashop-project.org (21 октября 2026 г.) и бюллетени безопасности PHP для CVE-2026-109618 и CVE-2026-109619.