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

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

Новую дыру оставили до следующего обновления.

image

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

Предупреждение опубликовали 23 октября 2026 года. Уязвимость CVE-2026-115560 затрагивает механизм отслеживания загрузки файлов через PHP-сессии. В потенциально опасной конфигурации злоумышленник может добиться удалённого выполнения кода, то есть заставить сервер выполнять посторонние команды. Разработчики считают подобный сценарий маловероятным, поэтому решили включить исправление в очередной плановый выпуск.

Проблема возникает лишь при необычном сочетании настроек и действий самого приложения. Сначала параметр session.serialize_handler должен принимать значение php_binary или php_serialize. Затем программа во время работы переключает его на php через функцию ini_set(), причём до вызова session_start(). Одновременно должен оставаться включённым механизм session upload progress, который позволяет отслеживать, сколько данных уже загружено на сервер.

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

До выхода исправления команда PHP рекомендует установить в конфигурации параметр session.upload_progress.enabled=0. Такой запрет отключает отслеживание хода загрузки файлов через механизм сессий, но не саму возможность загружать файлы. Аналогичную меру разработчики уже предлагали для PHP2Shell при устранении CVE-2026-109619. Администраторам, которые применили защитную настройку 21 октября и сохранили её, дополнительных действий не требуется.

Пока неизвестно, какие именно версии PHP затрагивает CVE-2026-115560, когда появится исправление и какую оценку опасности получит уязвимость. Полный технический бюллетень разработчики обещают выпустить вместе с очередным обновлением. Сообщений об эксплуатации новой ошибки в реальных атаках на момент предупреждения не поступало. При этом предыдущие две уязвимости уже вызвали массовую активность злоумышленников.

21 октября разработчики выпустили PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35, закрыв две критические уязвимости CVE-2026-109618 и CVE-2026-109619. Обе получили по 9,2 балла из 10 по шкале CVSS 4.0 и допускают выполнение произвольного кода без авторизации. Серия ошибок получила название PHP2Shell. Наибольшую опасность представляет конфигурация Apache с модулем mod_php, где атаку удалось продемонстрировать ещё до запуска кода самого сайта.

Первая ошибка, CVE-2026-109618, связана с неправильной обработкой нехватки памяти. PHP может прервать подготовку запроса, оставив внутренние структуры в некорректном состоянии, а затем обратиться к повреждённым данным. Вторая, CVE-2026-109619, позволяет повторно использовать внутреннее состояние после освобождения связанной с ним памяти. Подобные ошибки потенциально дают атакующему возможность нарушить работу сервера или добиться выполнения собственного кода.

Масштаб интереса злоумышленников оказался впечатляющим. За первые 45 минут после публикации сведений об уязвимостях число попыток эксплуатации достигло десятков тысяч, а к началу 22 октября счёт пошёл на миллионы атак. Cloudflare обнаружила подозрительный трафик ещё до официального раскрытия ошибок, а Amazon зафиксировала попытку атаки на своих серверах-приманках 17 октября, за четыре дня до выхода исправлений.

Исследователи Sophos и Arctic Wolf также обнаружили попытки использовать PHP2Shell для установки варианта вредоносной программы Mirai. Подобные программы объединяют захваченные устройства в ботнеты и могут применять их для распределённых атак. Однако наличие вредоносной нагрузки ещё не означает успешного заражения. На момент публикации специалисты сообщали преимущественно о сканировании и неудачных попытках эксплуатации, а количество действительно скомпрометированных серверов оставалось неизвестным.

Ситуацию осложнило появление более универсального эксплойта PHP2Shell, способного обходить защиту памяти ASLR. Исследователи VulnCheck продемонстрировали удалённое выполнение кода без авторизации на 64-битных серверах x86-64, а затем подтвердили работу инструмента с версиями PHP от 8.4.10 до 8.4.26 включительно. Разработка показывает, что штатные механизмы защиты памяти не гарантируют безопасность уязвимых систем. Сам инструмент предоставили ограниченному кругу клиентов, а подтверждений массовых успешных взломов с его помощью пока нет.

Дополнительную сложность создаёт различие между способами запуска PHP. Официальное предупреждение распространяется на PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Для mod_php разработчики подтвердили возможность атаки через обычный запрос без учётной записи. В других конфигурациях добиться того же результата может быть сложнее, но присутствие уязвимого кода не позволяет считать такие серверы безопасными.

В России угроза PHP2Shell уже привела к экстренным мерам для критической информационной инфраструктуры. ФСБ через ГосСОПКУ потребовала временно отключать затронутые сайты, если администраторы не могут оперативно установить исправления. Подобные ограничения затрагивают прежде всего организации, для которых успешный взлом веб-сервера способен создать угрозу внутренним системам и конфиденциальным данным.

Администраторам по-прежнему необходимо установить октябрьские обновления, поскольку отключение отдельных функций не гарантирует защиту от CVE-2026-109618 и CVE-2026-109619. Владельцам старых установок придётся отдельно проверять наличие исправлений у поставщиков Linux-дистрибутивов и компаний с расширенной поддержкой PHP. Версии 8.1 и более ранние уже не получают обычных обновлений безопасности от проекта, а поддержка PHP 8.2 завершится 31 декабря 2026 года.

Новая CVE-2026-115560 пока не сопоставима по подтверждённой опасности с двумя критическими уязвимостями PHP2Shell. Но предупреждение появилось в момент, когда злоумышленники уже активно исследуют механизмы обработки запросов и управления памятью PHP. Даже после установки экстренных патчей администраторам придётся проверить конфигурации приложений и дождаться следующего исправления.