PHP-серверы атаковали ещё до патчей: закрыты две критические дыры

В PHP закрыли две уязвимости с оценкой 9,2 из 10. AWS заметила попытки атак ещё до выхода исправлений, а PHP Foundation рассказала, почему одну из ошибок не могли устранить с 2024 года.

Разработчики PHP 21 октября выпустили экстренные обновления против двух уязвимостей PHP2Shell с оценкой опасности 9,2 из 10. Ошибки позволяют при определённых условиях выполнять код на сервере без авторизации. Исправления доступны в версиях 8.5.12, 8.4.27, 8.3.36 и 8.2.35.

Обе уязвимости связаны с повреждением памяти после аварийного завершения запроса. Наиболее высокий риск разработчики отмечают для Apache с mod_php: исследователи продемонстрировали атаку, которая срабатывает ещё до выполнения кода приложения. Поэтому исправления самой CMS или фреймворка недостаточно — обновить нужно PHP.

Исправление PHP стало доступно атакующим раньше общего релиза

AWS зафиксировала попытку эксплуатации PHP2Shell 17 октября, за четыре дня до публикации исправлений. Атакующий обратился к серверу-приманке MadPot с адреса коммерческой сети анонимизации. Как он получил сведения об уязвимости до раскрытия, компания пока не установила.

В день релиза, 21 октября между 02:00 и 08:00 UTC, AWS обнаружила дополнительные попытки атак с разных адресов. Эмбарго сняли в 14:00 UTC, после чего новые эксплойты появились в течение нескольких часов и почти сразу начали применяться против серверов-приманок. AWS сообщает о широком использовании PHP2Shell в атаках, но уточняет: успешность обнаруженных до раскрытия попыток против реальных систем пока неизвестна.

Согласованный выпуск первоначально назначили на 22 октября в 14:00 UTC, но перенесли на сутки раньше после утечки. Затем, 21 октября в 07:41 UTC, Chainguard опубликовала образы с исправлением — более чем за шесть часов до общего релиза. PHP Foundation обвинила компанию в нарушении эмбарго: атакующие получили возможность изучить исправление, пока пользователи других поставщиков ещё ждали обновлений.

Проблему заметили два года назад, но исправление застряло

Первые признаки ошибки обработки нехватки памяти обнаружили ещё в 2024 году, во время работы над результатами аудита Quarkslab. Способа добиться удалённого выполнения кода тогда не нашли. Предложенные исправления грозили нарушить совместимость, ухудшить производительность или потребовать переделки сторонних расширений, поэтому работа неоднократно останавливалась.

11 августа 2026 года исследователи Calif продемонстрировали удалённое выполнение кода; OpenAI независимо сообщила о той же причине ошибки в тот же день. PHP Foundation признала, что задержке способствовали нехватка специалистов и процесс принятия решений, требовавший согласия команды.

Масштаб риска виден по данным VirusTotal: в интернете обнаружено более 5,1 млн PHP-хостов, примерно 3,8 млн из них имеют хотя бы один открытый порт. Эти числа не означают, что каждый хост уязвим, но показывают размер инфраструктуры, которую необходимо проверить. Пользователям PHP 8.1 и более старых веток нужно уточнить наличие исправлений у поставщика дистрибутива или перейти на поддерживаемую версию.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
11 февраля 2017

5 способов взлома страницы ВКонтакте

В наше время можно потерять доступ к личным данным, если не придерживаться ...