Критическое обновление PHP: инструкция для владельцев коробочного Битрикс24 и сайтов на «1С-Битрикс: Управление сайтом»

—

от автора

Разработчики PHP выпустили обновления, устраняющие две критические уязвимости. Они могут позволить злоумышленнику выполнить произвольный код на сервере без авторизации.

Уязвимости обнаружены во внешнем серверном компоненте PHP, а не в коде продуктов «1С-Битрикс». Для защиты сайта или портала необходимо обновить PHP на сервере. Обновление продукта через SiteUpdate не заменяет эту процедуру.

Исправления вошли в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Установите исправленный выпуск используемой ветки с учётом совместимости вашего проекта. Подробности — в официальном уведомлении PHP.

Передайте эту инструкцию системному администратору, обслуживающему партнёру или хостингу.

Доступность обновлений в репозиториях

Готовые пакеты появляются в разных репозиториях не одновременно. Поэтому обычная проверка обновлений может пока не предложить исправленную версию PHP.
При этом репозиторий remi уже выпустил сборки всех поддерживаемых версий.

Если исправленного пакета нет в вашем репозитории, установите совместимые исправленные пакеты вручную.

Успешное выполнение команды обновления само по себе не подтверждает устранение уязвимостей: необходимо проверить, какая сборка PHP фактически обслуживает сайт.

Порядок обновления BitrixVM 9.x

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

  2. Обновите сведения о пакетах и проверьте доступность исправленной версии PHP в подключённых репозиториях.

  3. Установите обновление PHP вместе с необходимыми зависимостями. Если исправленных пакетов в репозитории ещё нет, используйте инструкцию по ручной установке.

  4. Для конфигурации с Apache и модулем PHP перезапустите Apache:

systemctl restart httpd.service

5. Убедитесь, что сайт использует исправленную сборку PHP. Проверьте авторизацию, работу CRM, загрузку файлов, почту и интеграции. Если проект работает на нескольких серверах, обновите каждый из них.

Временные меры на период установки обновления

Пока исправления не установлены, необходимо следовать рекомендациям по реализации компенсационных мер опубликованных PHP (https://www.php.net). Это не полная защита, только частичное закрытие рисков.

Для других серверных окружений

Обновите PHP штатным пакетным менеджером либо установите совместимые исправленные пакеты вручную. После установки перезапустите службы, которые исполняют PHP: Apache при использовании mod_php или соответствующие службы PHP-FPM.

Перезапуска одного nginx недостаточно для обновления работающих процессов PHP-FPM.

Для контейнеров

Обновите или пересоберите образ приложения с исправленной версией PHP и необходимыми расширениями. Затем пересоздайте контейнеры штатным способом, сохранив конфигурацию и подключённые тома.

Перед удалением старых контейнеров проверьте сохранность данных: файлы в записываемом слое контейнера удаляются вместе с ним. Подробнее — в документации Docker.

После развёртывания проверьте версию PHP в работающем приложении и основные функции сайта или портала.

Если используется PHP 7.4, 8.0 или 8.1

Команда PHP должн предоставила исправления исходного кода для этих веток. Доступность готовых пакетов нужно уточнять у поставщика. Согласуйте с администратором установку подтверждённой исправленной сборки или переход на поддерживаемую версию PHP.

ссылка на оригинал статьи https://habr.com/ru/articles/1097474/