Новая уязвимость в PHP позволяет обходить защиту disable_functions

vulnerability

Специалисты по кибербезопасности предупреждают о выявлении новой серьезной уязвимости в интерпретаторе языка PHP. Проблема, зарегистрированная в Банке данных угроз (BDU) под номером BDU:2026-02404, связана с некорректной работой механизма уничтожения массивов, содержащих объекты. Технически, уязвимость классифицируется как CWE-416, то есть использование памяти после её освобождения. Эксплуатация этой ошибки позволяет злоумышленнику обойти важный механизм защиты "disable_functions", предназначенный для ограничения выполняемых функций. В результате атакующий может запускать произвольные команды операционной системы, используя специально сформированный объект "DateInterval".

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

Согласно данным из BDU, уязвимости подвержены последние основные версии PHP: 8.2, 8.3, 8.4 и 8.5. Степень опасности оценивается как критическая. Базовый балл по шкале CVSS 3.1 достигает 9.3, что указывает на высокую потенциальную опасность для инфраструктуры. В частности, вектор атаки имеет локальный характер, но при этом не требует аутентификации или взаимодействия с пользователем. Более того, уязвимость оказывает влияние на другие компоненты системы за пределами защищаемой зоны.

Основной риск заключается в возможности обхода директивы "disable_functions". Многие хостинг-провайдеры и администраторы активно используют эту настройку для создания так называемых "песочниц". Внутри них выполнение потенциально опасных функций, таких как "system()" или "exec()", запрещено. Однако обнаруженная проблема позволяет преодолеть это ограничение. Следовательно, злоумышленник, который уже получил возможность выполнить свой код на сервере, например, через уязвимость в веб-приложении, может существенно расширить свои привилегии. В результате он способен получить полный контроль над системой, что ведет к катастрофическим последствиям.

Техническая суть уязвимости заключается в ошибке типа "использование после освобождения" при работе с массивами объектов. Когда PHP уничтожает такой массив, происходит некорректное обращение к уже освобожденной области памяти. Специально созданный объект "DateInterval" может манипулировать этой областью. Таким образом, зловредная полезная нагрузка может перехватить поток выполнения программы. В частности, исследователи отмечают, что публичное описание метода эксплуатации и пример кода уже доступны в открытых источниках, например, на GitHub. Это значительно повышает актуальность угрозы, поскольку снижает порог входа для киберпреступников.

На текущий момент официальные исправления от разработчиков PHP Group еще не выпущены, и способ устранения уточняется. Тем не менее, эксперты рекомендуют немедленно применить комплекс компенсирующих мер для снижения рисков. Во-первых, следует запускать интерпретатор PHP в изолированном окружении с минимально необходимыми привилегиями. Во-вторых, эффективным решением является использование отдельных пулов в PHP-FPM для разных пользователей и приложений. В-третьих, необходимо задействовать межсетевые экраны уровня веб-приложений для фильтрации входящего трафика.

Кроме того, важно применять системы обнаружения и предотвращения вторжений для мониторинга подозрительной активности. Также специалисты советуют минимизировать поверхность атаки, отключая неиспользуемые сервисы и модули PHP. Регулярное резервное копирование критически важных данных остается обязательной практикой. Одновременно мониторинг событий безопасности с помощью SIEM-систем поможет вовремя обнаружить инцидент. Впрочем, стоит отметить, что эти меры носят временный характер и не заменяют установку официального патча.

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

Ссылки

Комментарии: 0