Просмотров: 118
Критическая уязвимость PHP: что сделать, чтобы закрыть уязвимости
Разработчики PHP выпустили обновления, которые устраняют две критические уязвимости. Они потенциально позволяют злоумышленнику выполнить произвольный код на сервере без авторизации. Если у вас виртуальный или выделенный сервер, это важно проверить как можно быстрее. Для обычного хостинга проблему устраняет сам хостинг-провайдер. Сразу уточним: уязвимость во внешнем серверном компоненте — PHP. Поэтому обновление самого сайта не заменяет обновление PHP на сервере.
Какие версии PHP исправлены
Исправления вошли в выпуски:
-
PHP 8.5.12
-
PHP 8.4.27
-
PHP 8.3.36
-
PHP 8.2.35
Нужно установить исправленный выпуск той ветки, которая используется у вас на сервере, с учетом совместимости проекта.
Кому передать инструкцию
Лучше всего — системному администратору, обслуживающему партнёру или хостингу. Если сайт у нас на технической поддержке или хостинге, мы берём эти работы на себя.
Важно: установка обновлений на сайт не закрывает уязвимость
Уязвимости находятся не в CMS и не в отдельных модулях, а в серверном компоненте PHP. Поэтому установка обновлений «1С-Битрикс», WordPress или другой системы не заменяет обновление PHP.
Недостаточно и просто выполнить команду обновления пакетов. После установки нужно проверить, какая версия PHP фактически обрабатывает запросы сайта.
Команда php -v может показывать версию PHP для командной строки, которая не всегда совпадает с версией, используемой веб-сервером или PHP-FPM. Проверять необходимо именно рабочее окружение сайта.
Обновление на BitrixVM 9.x
Порядок такой:
-
Проверьте резервную копию сайта, базы данных и конфигурации сервера.
-
Проверьте совместимость обновления в тестовом окружении.
-
Обновите сведения о пакетах и проверьте, доступна ли исправленная версия PHP в подключенных репозиториях.
-
Установите обновление PHP вместе с необходимыми зависимостями. Если исправленных пакетов в вашем репозитории ещё нет, используйте ручную установку совместимых пакетов.
-
Для конфигурации с Apache и модулем PHP перезапустите Apache:
bash
systemctl restart httpd.service -
Убедитесь, что сайт использует исправленную сборку PHP.
-
Проверьте ключевые функции: авторизацию, работу CRM, загрузку файлов, почту и интеграции.
-
Если проект работает на нескольких серверах, обновите каждый из них.
Репозитории обновляются не одновременно
Готовые пакеты появляются в разных репозиториях не сразу. Поэтому обычная проверка обновлений может пока не предложить исправленную версию PHP. При этом в репозитории remi уже есть сборки всех поддерживаемых версий. Если исправленного пакета в вашем репозитории нет, нужно установить совместимые исправленные пакеты вручную.
Другие серверные окружения
Обновите PHP штатным пакетным менеджером либо установите совместимые исправленные пакеты вручную.
После установки перезапустите службы, которые исполняют PHP:
-
Apache — если используется mod_php;
-
соответствующие службы PHP-FPM — если используется PHP-FPM.
Перезапуска одного nginx недостаточно: работающие процессы PHP-FPM от этого не обновятся.
Если используются контейнеры
Нужно обновить или пересобрать образ приложения с исправленной версией PHP и необходимыми расширениями. Затем пересоздать контейнеры штатным способом, сохранив конфигурацию и подключенные тома.
Перед удалением старых контейнеров проверьте сохранность данных: файлы в записываемом слое контейнера удаляются вместе с ним. После развертывания проверьте версию PHP в работающем приложении и основные функции сайта или портала.
Если используется PHP 7.4, 8.0 или 8.1
Если сайт работает на PHP ниже 8.2, то желательно также обновить сайт, чтобы не использовать неподдерживаемые и не обновляемые версии PHP.
Разработчики PHP выпустили исправления исходного кода и для этих веток. Наличие готовых пакетов нужно уточнять у хостинг-провайдера. Согласуйте с администратором установку подтвержденной исправленной сборки или переход на поддерживаемую версию PHP.
Пока обновление не установлено
До установки исправлений нужно следовать рекомендациям по компенсационным мерам, опубликованным на сайте PHP. Это не полная защита, а только частичное снижение рисков.
Что делать, если обновиться прямо сейчас нельзя
Полностью устранить уязвимости можно только установкой исправленной версии PHP. Временные настройки способны снизить риск отдельных сценариев атаки, но не делают сервер безопасным.
PHP Security Team опубликовала перечень временных мер, включая изменение настроек памяти, ограничение размера запросов и отключение некоторых функций. Применять их должен системный администратор: неправильные значения могут нарушить загрузку файлов, импорт данных, работу форм или других функций сайта.




