Cloudflare выпустила защиту от уязвимости php2shell

Сегодня компании Calif.io, Wiz, OpenAI и Quarkslab раскрыли информацию о двух уязвимостях в PHP, которым присвоены идентификаторы CVE-2026-109618 и CVE-2026-109619, а также известных под общим названием php2shell. Эти уязвимости затрагивают все веб-серверы, работающие на PHP 5.4 или более поздних версиях, и могут позволить злоумышленнику вызвать отказ в обслуживании, выполнить удалённый код и получить доступ к данным, когда приложение обрабатывает специально сформированный HTTP-трафик.

Cloudflare участвовала в скоординированных усилиях по развёртыванию мер защиты для обеспечения безопасности Интернета, работая совместно с PHP foundation, OpenAI и Wiz, среди прочих. Cloudflare разработала и внедрила средства защиты межсетевого экрана веб-приложений (WAF) ещё в начале октября 2026 года, которые были развёрнуты примерно за 9 часов до публичного раскрытия информации. Начиная с 21 октября, 3:02 UTC, клиенты Cloudflare, использующие наш бесплатный или платный WAF, были защищены по умолчанию от php2shell.

Cloudflare успешно развернула несколько уровней защиты для всех своих клиентов, в то время как уязвимость была раскрыта до официальной даты релиза, и мы наблюдали атакующий трафик, нацеленный на наших клиентов. Мы отслеживали, как злоумышленники модифицировали полезную нагрузку атаки, пытаясь обойти наши средства защиты, анализируя объём срабатываний и сопоставляя его с логикой правил.

Защита от php2shell потребовала большего, чем стандартные правила на основе запросов. Данных запроса самих по себе не всегда достаточно, чтобы отличить эксплойт от легитимного трафика. Ответ сервера-источника добавляет контекст, помогая определить, удалась ли эксплуатация, и снижая риск ложных срабатываний.

Для обеспечения такой защиты мы разработали обнаружение на уровне полной транзакции — новую возможность Cloudflare WAF, которая объединяет сигналы из запроса и ответа в рамках одной HTTP-транзакции. Правила ответа затем могут блокировать соответствующий ответ сервера-источника до того, как он достигнет отправителя запроса. Защиты от php2shell стали первыми управляемыми обнаружениями, выпущенными нами с использованием этой возможности.

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

Защиты доступны и развёртываются автоматически на всех тарифах с включённым WAF, включая бесплатных пользователей.

Что известно об уязвимостях

PHP используется почти 70% веб-сайтов. Уязвимости php2shell затрагивают саму среду выполнения PHP и могут позволить злоумышленникам выполнять вредоносный код на уязвимых серверах, раскрывать данные клиентов или нарушать работу сервисов. Поскольку PHP лежит в основе таких широко используемых платформ, как WordPress и Magento, эти недостатки потенциально могут затронуть большое количество приложений по всему Интернету.

Обе уязвимости связаны с тем, как PHP управляет памятью при сбое во время обработки HTTP-запроса. Обычно PHP выделяет память для хранения данных, необходимых для обработки запроса, а затем освобождает её по завершении работы. Если обработка прерывается неожиданно, например из-за нехватки памяти, PHP не выполняет безопасную очистку памяти. Эти уязвимости возникают, когда PHP обрабатывает ошибку, а затем пытается использовать данные, которые не были полностью инициализированы, или память, которая уже была освобождена.

Злоумышленник может отправлять специально сформированные HTTP-запросы, чтобы вызвать такие условия. Крупные запросы — один из способов создать нагрузку на память, но проблема не ограничивается расходованием ресурсов сервера. Манипулируя данными, которые PHP встречает в этой недействительной памяти, злоумышленник может вызвать сбой процесса PHP, раскрыть конфиденциальную информацию или выполнить предоставленный им код.

Две уязвимости различаются по моменту возникновения небезопасного доступа к памяти:

Уязвимость

В чём проблема

CVE-2026-109618

PHP исчерпывает память и прерывает работу до того, как некоторые внутренние данные были должным образом инициализированы. Во время очистки этого запроса PHP может использовать эти незавершённые данные как действительные.

CVE-2026-109619

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

Эти недостатки находятся в среде выполнения PHP, поэтому обновление кода сайта или плагина(ов) само по себе не устраняет эти уязвимости. Администраторам необходимо обновить программное обеспечение PHP, на котором работают их приложения. Если PHP управляется хостинг-провайдером, попросите провайдера применить обновление безопасности.

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

Новые правила

Для клиентов бесплатного тарифа новые правила опубликованы в рамках Cloudflare Managed Free Ruleset (ID набора правил 77454fe2d30c4220b5701f6fdfb893ba). Пользователям бесплатного тарифа не требуется предпринимать каких-либо действий для активации защиты. Чтобы изменить поведение набора правил, обратитесь к нашей документации.

Описание правила

ID правила

Generic Rules - Anomalous Execution - 1

4e315666e8e344cdb64119a3b5ccf32f

Generic Rules - Anomalous Execution - 2

00c10e6cc4da4bd08722adeebcd95984

Generic Rules - Anomalous Execution - 3

48ddf592361e4fdb97a8a85982dab691

Generic Rules - Anomalous Execution - 4

3556683d512a47f2937899c524b1a4c6

Generic Rules - Anomalous Execution - 5

da07c85852e34625bb478496302ede46

Generic Rules - Anomalous Execution - 6

19373a83abb840e18ab3ce5a7975ce1b

Generic Rules - Anomalous Execution - 7

07f0b6ddaabf40b1b2042dade8d613fa

Защита для платных тарифов выпущена в составе Cloudflare Managed Ruleset (ID набора правил efb7b8c949ac4650a09736fc376e9aee). Если вы используете тариф Professional, Business или Enterprise, проверьте развёртывание вашего Managed Ruleset и убедитесь, что оно работает в режиме блокировки (deployed).

Описание правила

ID правила

Generic Rules - Anomalous Execution - 1

c1d409ad838f47f59446f21cc438d5dd

Generic Rules - Anomalous Execution - 2

f9a45927414245e3a64bb12d0a0c2f64

Generic Rules - Anomalous Execution - 3

771c654ae1154d4daa72f4e1545d163c

Generic Rules - Anomalous Execution - 4

217005865f0145f392300bac212afcc9

Generic Rules - Anomalous Execution - 5

38efdb17ea594501bb55a1d71867b12e

Generic Rules - Anomalous Execution - 6

4148ae686fdb4d01be673fab9d9c073d

Generic Rules - Anomalous Execution - 7

1389aa259617437392ce149c48143645

Для более точного выявления попыток эксплуатации Cloudflare разработала обнаружение полных транзакций — новую возможность WAF, которая анализирует обе стороны одной и той же HTTP-транзакции. Некоторые вредоносные полезные нагрузки можно распознать по одному запросу, однако ответ содержит полезные сигналы, позволяющие создавать правила с более высокой уверенностью и снижать число ложных срабатываний. Правило, соответствующее полной транзакции, может заблокировать ответ источника до того, как он достигнет запрашивающей стороны. Узнайте, как это работает, в нашем посте блога об обнаружении полных транзакций.

Следующие правила развёрнуты в новом Cloudflare Managed Response Firewall Default для клиентов на всех тарифах, включая Free:

Описание правила

ID правила

Блокировка по умолчанию для сигнатур с высокой уверенностью

afffe22785674c80a31875c848d2242a

Примечание: описания правил будут обновлены в ближайшее время.

Просмотр событий и настройка защиты

Для анализа заблокированных запросов перейдите в Security > Security Analytics > Events. Отфильтруйте по ID правил из таблицы выше и изучите совпавший запрос, действие и путь. События показывают, было ли действие выполнено управляемым или пользовательским правилом. Клиенты, которым требуется адаптировать защиту, могут обновить область действия управляемого набора правил до тех частей приложения, где он актуален.

Обновите PHP и сохраните защиту включённой

Клиенты Cloudflare, использующие наш управляемый набор правил, защищены по умолчанию. Мы рекомендуем следовать рекомендации из уведомления и как можно скорее применить обновление вендора к вашим репозиториям PHP, сохраняя защиту WAF включённой в качестве дополнительной меры. Наши аналитики WAF будут продолжать обновлять защиты по мере появления новых техник.