Критические уязвимости PHP привели к временной приостановке работы сайтов
Уязвимости PHP2Shell позволяют потенциально выполнять код удалённо без аутентификации. Администраторы отключали сайты до выхода исправлений.
21 октября 2026 года в PHP раскрыли информацию о двух критических уязвимостях, получивших условное название PHP2Shell. Проблемы обозначены как CVE-2026-109618 и CVE-2026-109619 и потенциально позволяют добиться удалённого выполнения кода без аутентификации.
Подробности уязвимостей появились в сети до запланированного скоординированного раскрытия и публикации официальных исправлений. По оценке CERT-EU, обе проблемы имеют максимальный для этого класса высокий уровень риска: CVSS 9.2. Уязвимости затрагивают все версии PHP начиная с PHP 5.
Из-за угрозы часть администраторов временно ограничила или полностью отключила доступ к сайтам, чтобы вручную применить защитные меры. В числе затронутых сервисов упоминались Internet Archive, BookMyName — сервис регистрации и управления доменами Scaleway — и реестр доменов .de.
Какие версии получили исправления
Команда безопасности PHP выпустила обновления PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Дополнительные исправления подготовили для уже неподдерживаемых веток PHP 7.4, 8.0 и 8.1.
Разработчики PHP призвали администраторов установить обновления как можно скорее. По их оценке, полностью закрыть уязвимости можно только переходом на исправленные версии. Sansec предупреждала, что массовая эксплуатация могла начаться примерно через 15 минут после публикации патчей.
Механизм первой уязвимости
CVE-2026-109618 связана с ошибкой обработки нехватки памяти. Если процесс исчерпывает доступный объём памяти, вызов longjmp может прервать работу интерпретатора в момент, когда внутренние структуры текущего запроса инициализированы лишь частично. Затем код завершения обработки обращается к этим структурам как к полностью созданным, что создаёт условия для удалённого выполнения кода.
Основным вектором атаки считаются специально сформированные multipart-запросы, вызывающие исчерпание памяти. В частности, злоумышленник может обходить ограничение post_max_size, не передавая заголовок Content-Length и отправляя большое количество HTTP-заголовков. Возможны и точечные атаки на операции PHP-приложений, которые сами по себе потребляют значительный объём памяти.
Наличие эксплойта подтверждено для конфигураций с mod_php, поскольку этот вариант вызывает функцию shutdown() даже после сбоя. В PHP-FPM аварийно завершившийся дочерний процесс обычно закрывается, что усложняет эксплуатацию, хотя полностью такой сценарий не исключает.
Ошибка с глобальным состоянием запроса
CVE-2026-109619 вызвана обращением к памяти после её освобождения. При фатальной ошибке, тайм-ауте или нехватке памяти глобальное состояние, связанное с запросом, может быть очищено не полностью. В результате указатели остаются активными после освобождения соответствующей памяти, а следующий запрос в том же процессе может обратиться к уже недействительным данным.
Для атаки также могут использоваться multipart-запросы, провоцирующие нехватку памяти при работе механизма индикации прогресса загрузки session.upload_progress. Подтверждённым вектором для PHP 8.5 называется обработчик fatal_error_backtraces, который не сбрасывает состояние трассировки при завершении запроса.
В первом сценарии атака возможна в конфигурациях с mod_php и PHP-FPM, а во втором подтверждённый сценарий относится только к mod_php. Кроме того, специалисты упоминали неподтверждённую возможность эксплуатации в конфигурациях, где на ранних этапах обработки запроса выводятся предупреждения, например при использовании устаревших параметров.
Сообщить о проблеме в публикации
Обращение принято Обращение будет рассмотрено. По результатам проверки публикация может быть исправлена, дополнена, временно скрыта или удалена.