Домой Новости Критические уязвимости PHP RCE: срочно обновитесь

Критические уязвимости PHP RCE: срочно обновитесь

0
Защита от критических уязвимостей PHP RCE

Команда разработчиков PHP выпустила экстренные обновления, закрывающие критические уязвимости PHP RCE (Remote Code Execution). Версии 8.5.12, 8.4.27, 8.3.36 и 8.2.35 устраняют ошибки, позволяющие злоумышленникам выполнять произвольный код на сервере без аутентификации. Настоятельно рекомендуем обновиться немедленно.

Кто в зоне риска?

Угрозе подвержены все установки PHP, обрабатывающие веб-запросы. Это включает:

  • PHP-FPM
  • Apache с модулем mod_php (риск считается максимальным)
  • php-cgi
  • FrankenPHP и LiteSpeed

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

Детали уязвимостей

  1. CVE-2026-109618 (RCE через повреждение OOM): Ошибка возникает при обработке нехватки памяти (Out-Of-Memory). Если память заканчивается в момент частичной инициализации данных запроса, процедура очистки может ошибочно принять невалидные данные за корректные.
  2. CVE-2026-109619 (RCE через устаревшее глобальное состояние): Внутреннее состояние запроса может сохраниться в памяти после ее освобождения. Следующий запрос, обработанный тем же воркером, может использовать эти «остатки» до того, как произойдет нормальная инициализация.

Как обновиться?

  1. Установите актуальные версии: PHP 8.5.12, 8.4.27, 8.3.36 или 8.2.35.
  2. Пользователи Linux должны проверить репозитории своих дистрибутивов — крупные вендоры уже получили патчи заранее.
  3. Для Windows бинарные файлы и исходный код доступны на официальной странице загрузок PHP.
  4. Важно: Версии PHP 8.1 и старше более не поддерживаются основным проектом. Если вы используете их, обратитесь к вашему LTS-вендору или рассмотрите возможность миграции на поддерживаемую ветку.
  5. Пользователям репозитория rpms.remirepo.net рекомендуется временно перейти на пакеты дистрибутива или сборку из исходников, так как обновление в этом репозитории появится с задержкой.

Временные меры защиты (если обновление невозможно прямо сейчас)

Полностью защитить систему можно только обновлением, но следующие шаги снизят риск эксплуатации конкретных векторов атаки:

Против CVE-2026-109618 (OOM corruption):

  • Установите memory_limit=-1 на уровне конфигурации сервера (например, php_admin_value в пуле FPM или конфиге Apache), чтобы приложение не могло переопределить это значение.
  • Ограничьте post_max_size. Для сайтов без загрузки файлов установите 8M, с загрузками — 32M.
  • Используйте лимиты контейнеров или cgroups для изоляции воркеров. Не используйте RLIMIT_AS или RLIMIT_DATA, так как они могут спровоцировать саму уязвимость.

Против CVE-2026-109619 (stale global state):

  • Отключите прогресс загрузки сессий: установите session.upload_progress.enabled=0 в php.ini или конфиге сервера и перезапустите все воркеры.
  • Для PHP 8.5 установите fatal_error_backtraces=0.
  • Удалите любые невалидные или устаревшие настройки, которые вызывают диагностику ошибок до завершения инициализации запроса.

Чек-лист безопасности после обновления

После установки патча, закрывающего критические уязвимости PHP RCE, недостаточно просто перезагрузить сервер. Чтобы гарантировать защиту инфраструктуры, выполните следующие шаги:

  1. Проверка активной версии.
    Убедитесь, что веб-сервер действительно использует обновленный интерпретатор. Выполните в терминале команду php -v или создайте временный файл info.php с функцией phpinfo(). Часто бывает, что CLI-версия обновилась, а модуль Apache или пул PHP-FPM продолжает работать со старой библиотекой.
  2. Аудит логов на предмет атак.
    Пока вы не обновились, ваш сервер мог быть целью автоматических сканеров. Проверьте логи доступа (access.log) и ошибок (error.log) за последние сутки. Ищите подозрительные POST-запросы с большим объемом данных или обращения к нестандартным эндпоинтам — это могут быть следы попыток эксплуатации CVE-2026-109618.В качестве дополнительной меры защиты рекомендуется ограничить доступ по IP-адресам к чувствительным разделам сайта через конфигурацию веб-сервера.
  3. Валидация конфигурации php.ini.
    Если вы применяли временные меры защиты (например, отключали session.upload_progress или меняли memory_limit), сейчас самое время вернуть настройки в штатный режим. Оставьте только те ограничения, которые необходимы для работы ваших приложений, чтобы не снижать производительность системы.
  4. Тестирование работоспособности сайтов.
    Критические исправления иногда влияют на работу легаси-кода. Пройдитесь по основным функциям ваших проектов: формам обратной связи, загрузке файлов и авторизации. Убедитесь, что после устранения уязвимостей PHP RCE функционал не пострадал.
  5. Настройка автоматических обновлений.
    Чтобы не пропустить будущие патчи, настройте unattended-upgrades (для Debian/Ubuntu) или аналогичные инструменты для вашего дистрибутива. Безопасность — это процесс, а не разовое действие. Регулярное обновление стека технологий защитит вас от новых векторов атак. Регулярное обновление веб-сервера на Linux и своевременная установка заплаток — это базовая гигиена администратора, которая защитит вас от новых векторов атак в будущем.

Своевременная реакция на такие инциденты — залог стабильной работы любого веб-ресурса. Не игнорируйте advisories от разработчиков и всегда проверяйте целостность системы после внесения изменений.

Технические детали и полные описания уязвимостей доступны в официальном advisory PHP.

НЕТ КОММЕНТАРИЕВ

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

Exit mobile version