Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Php2shell i node2shell kak obnaruzhit ustranit i proverit uyazvimosti v veb pril
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

PHP2Shell и Node2Shell: как обнаружить, устранить и проверить уязвимости в веб-приложениях и API

Источник: Qualys•12 ноября 2026 г. в 09:32

PHP2Shell и Node2Shell: как обнаружить, устранить и проверить уязвимости в веб-приложениях и API

Главное Ни одна из уязвимостей не содержится в коде вашего приложения. Каждое приложение и API в уязвимой среде выполнения наследует этот риск. PHP2Shell (CVE-2026-109618, CVE-2026-109619) исправлена в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Node2Shell (CVE-2026-111497) исправлена в Node.js…

Главное

  • Ни одна из уязвимостей не содержится в коде вашего приложения. Каждое приложение и API, работающие в уязвимой среде выполнения, наследуют этот риск.
  • PHP2Shell (CVE-2026-109618, CVE-2026-109619) исправлена в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35.
  • Node2Shell (CVE-2026-111497) исправлена в Node.js 22.23.4, 24.22.1 и 26.12.1.
  • Обе уязвимости внесены в каталог CISA KEV. PHP2Shell добавлена 26 октября, а Node2Shell — на следующий день, 27 октября.
  • Qualys TotalAppSec проверяет приложение и API с помощью четырех неинвазивных QID для обнаружения уязвимостей и двух инвазивных QID для проверки исправления.
  • Установка патчей исправляет среду выполнения. Повторное сканирование подтверждает, что исправление сработало и приложение больше не подвержено риску.

21 октября вышли исправления для PHP2Shell и Node2Shell — двух критических уязвимостей в средах выполнения, на которых работают ваши веб-приложения и API. Пять дней спустя PHP2Shell попала в каталог активно эксплуатируемых уязвимостей (KEV) CISA, а на следующий день за ней последовала и Node2Shell. Злоумышленники уже probing PHP2Shell four days before a patch even existed.

При таких сжатых сроках стандартный подход — найти хосты, обновиться и закрыть тикет — оказывается недостаточным. Наличие патча — это утверждение о сервере. Однако злоумышленники подключаются к приложениям и API, которые на них работают. Вопрос для команд безопасности приложений заключается не в том, были ли обновлены PHP и Node.js, а в том, может ли злоумышленник по-прежнему достучаться до уязвимости через какое-либо из ваших приложений, и как вы об этом узнаете.

В этой статье рассматривается влияние обеих уязвимостей на вашу инфраструктуру приложений, слабые места в большинстве планов реагирования и то, как Qualys TotalAppSec превращает уязвимость среды выполнения в находку, которую можно легко устранить и проверить.

Уязвимость среды выполнения — это унаследованный риск для приложения

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

PHP2Shell — это широкомасштабная проблема. Подразделение Qualys Threat Research Unit проанализировало анонимизированные данные более чем 10 000 клиентов и обнаружило 167 миллионов установок PHP. Из 156 миллионов, где удалось определить версию PHP, 73% находятся на ресурсах, доступных из интернета. Около 71% из тех же 156 миллионов используют версии с истекшим сроком службы (EOL) или поддержкой, которые, скорее всего, никогда не получат патч от вендора, и только 199 000 были обновлены в первые 12 часов после раскрытия информации.

Node2Shell (CVE-2026-111497, уязвимость в декодере Brotli, поставляемом вместе с Node.js) скрывается на самом видном месте. Приложения могут быть подвержены риску, даже если они никогда не вызывают API Brotli, поскольку фреймворки или зависимости могут распаковывать контролируемые злоумышленником данные. Векторами атак являются, например, fetch() в Node.js и разбор тела запроса в Express 5. Как и в случае с PHP, версии Node.js с истекшим сроком поддержки, включая 25.x, 23.x и 20.x, не получат исправлений и должны быть переведены на поддерживаемый релиз.

На практике уязвимая инфраструктура включает клиентские порталы, сайты на базе CMS, микросервисы и связывающие их API. Сюда также входит все, что запрашивает или принимает сжатый контент.

Злоумышленники не ждут вашего цикла обновления

Подробности о PHP2Shell утекли до согласованного релиза. , хотя на начальном этапе активность сводилась в основном к сканированию, сбору цифровых отпечатков и нерабочим эксплойтам. Затем ситуация обострилась. CISA внесла PHP2Shell в свой каталог October 26, а Node2Shell — October 27.

  • Подтвержденное выполнение кода: ханипоты исследователя зафиксировали подтвержденное удаленное выполнение кода с раскрытием используемой памяти в Apache mod_php под управлением PHP 8.4.26.
  • Масштаб атак: Лаборатория разведки угроз Делфтского технического университета отследила more than 50,000 PHP2Shell exploitation requests с более чем 600 IP-адресов из 70 стран.
  • Node2Shell: общедоступный код эксплойта уже появился, и в реальных условиях зафиксированы попытки эксплуатации.
  • Что на кону: исследователи показали, что память воркера PHP может быть раскрыта без аутентификации, подвергая риску пароли, токены аутентификации и ключи API.

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

Найдите, устраните и проверьте уязвимости PHP2Shell и Node2Shell во всех ваших приложениях и API с помощью TotalAppSec.

Где сбоит большинство планов реагирования

Большинство планов следуют одному сценарию: провести инвентаризацию хостов, обновиться, перезапуститься, закрыть тикет. Это работает до тех пор, пока не появится одна из трех брешей. В каждом случае исправление было применено в одном месте, но злоумышленник добирается до приложения через другое.

Приложение, у которого нет владельца

Нельзя протестировать или обновить то, чего нет в вашей инвентаризации. Забытые микросайты, купленные приложения и теневые API могут работать на старых средах выполнения, и именно за ними никто не следит.

Строка версии — это лишь подсказка, а не доказательство

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

Исправлено на диске — не значит исправлено на продакшене

Запущенные процессы сохраняют уязвимый код в памяти до тех пор, пока не будут перезапущены такие службы, как PHP-FPM или долгоживущие приложения Node.js. Кроме того, на серверах может быть несколько копий PHP, поэтому обновление одной из них оставляет другую уязвимой. Исправление имеет значение только тогда, когда обновилась именно та среда выполнения, которая обслуживает запросы.

План реагирования, нацеленный на результат с доказательством

Универсальный план реагирования состоит из пяти шагов, и четвертый — тот, который большинство команд пропускает.

  • Найдите каждую среду выполнения и приложение. Проведите инвентаризацию веб-приложений и API за вашими внешними сервисами, а также используемых ими сред выполнения. Включите сюда версии с истекшим сроком службы, контейнеры, поставляемые с ПО среды выполнения и приложения без владельцев.
  • Просканируйте, затем ранжируйте по степени риска. Начните с приложений, доступных из интернета. Большинство команд не могут сказать, какие приложения используют Apache mod_php или распаковывают ненадёжные данные Brotli, пока не проведут сканирование. Поэтому сначала протестируйте, а затем приоритезируйте подтвержденные уязвимости.
  • Устраните уязвимость, затем перезапустите службы. Обновитесь до исправленной версии или сборки с бэкпортом от вашего дистрибутива и перезапустите каждый сервис, загружающий среду выполнения. Если вы пока не можете установить патч, примените временные меры от вендора и ограничьте доступ к сервису.
  • Подтвердите исправление снаружи. Повторно протестируйте те же приложения и API, и считайте любую оставшуюся уязвимость неполным исправлением. Также проверьте систему на признаки компрометации, произошедшей до установки патча, так как эксплуатация началась рано.
  • Сделайте процесс воспроизводимым. Следующая критическая CVE вызовет такую же гонку. Отлаженный процесс всегда эффективнее суеты.

Как обнаружить PHP2Shell и Node2Shell в веб-приложениях и API с помощью TotalAppSec

Qualys TotalAppSec обеспечивает единое управление рисками на базе ИИ для веб-приложений и API. Для PHP2Shell и Node2Shell решение тестирует само приложение по протоколу HTTP (тем же путем, который использует злоумышленник), а не только хост. Шесть новых QID охватывают как веб-приложения, так и API.

Два типа свидетельств: Потенциальные находки (QID 520310 и 520404) считывают сигналы версии PHP из заголовков ответа и файлов cookie приложения. Подтвержденные находки (QID 533086 и 533203) фиксируют поведение в работающем приложении: то, как PHP обрабатывает идентификатор сеанса с недопустимым символом, и то, как Node.js обрабатывает специально сформированный полезный пакет Brotli. Четыре из шести проверок являются неинвазивными и могут безопасно использоваться в рабочей среде.

Безопасный способ проверки: Две инвазивные проверки (QID 533068 и 533085) создают нагрузку на приложение и могут привести к сбою неисправленного приложения. Запускайте их в среде QA или на исправленной производственной системе с помощью профиля Trending Vulnerability Intrusive Options, чтобы проверка была осознанным шагом с согласованиями и окном обслуживания.

Готовая отправная точка для следующего шага: TotalAppSec включает два созданных системой профиля параметров для сканирования актуальных CVE, таких как PHP2Shell и Node2Shell. Чтобы запустить сканирование веб-приложения на PHP2Shell и Node2Shell, выберите профиль, укажите свои приложения по имени или тегу и запустите сканирование. Интерактивный тур по продукту ниже проведет вас через каждый шаг. Ваши запланированные сканирования могут уже включать четыре неинвазивных QID, поскольку они являются частью профилей параметров Core, OWASP Top 10 и Everything, а также сканирований на базе ИИ.

Каждая находка привязывается к определенному приложению или API, поэтому ее владелец может принять меры. После исправления и перезапуска выполните повторное сканирование тех же приложений. Если QID все еще отображается, значит, запросы обслуживает не исправленная среда выполнения.

TotalAppSec показывает, что именно уязвимо на уровне приложений и API. Подлежащая среда выполнения находится на хостах, в образах и в облачных рабочих нагрузках, где Qualys VMDR, TotalCloud и Container Security находят уязвимые компоненты PHP и Node.js. Исследовательский центр Qualys Threat Research Unit освещает эту сторону в блогах PHP2Shell и Node.js.

Посмотрите на практике в этом интерактивном туре по продукту

Следующая уязвимость среды выполнения уже на подходе

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

Лучше всего с этим справляются не те команды, которые больше всего суетятся на первой неделе. Они уже знают, какие у них есть веб-приложения и API, видят, какие из них уязвимы, и могут подтвердить, что исправление действительно сработало. Исправление — это утверждение о сервере. Доказательство — это находка, касающаяся приложения. Qualys TotalAppSec предоставляет вам такое представление на уровне приложения с готовыми профилями актуальных уязвимостей, с которых можно начать.

Узнайте о своей подверженности уязвимости PHP2Shell и устраните ее с помощью Qualys

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

Часто задаваемые вопросы (FAQ)

Какие профили параметров включают QID для PHP2Shell и Node2Shell?

Четыре неинвазивных QID (520310, 533086, 520404 и 533203) входят в профиль параметров Trending Vulnerability Options, а также в профили Core, OWASP Top 10 и Everything. Два инвазивных QID (533068 и 533085) входят только в профиль Trending Vulnerability Intrusive Options.

Выполняет ли сканирование на базе ИИ проверку на новые QID?

Да, для четырех неинвазивных QID. Два инвазивных QID не являются частью сканирования на базе ИИ, поэтому запускайте их отдельно с помощью профиля Trending Vulnerability Intrusive Options.

Когда сканирование может пропустить PHP2Shell или Node2Shell?

Проверки на основе версий (QID 520310 и 520404) могут не заметить приложение, если веб-сервер или прокси-сервер удаляет заголовки ответа и скрывает версию PHP. Подтвержденные проверки (QID 533086 и 533203) проверяют реакцию приложения вместо чтения заголовков версий.

Как подтвердить, что исправление сработало?

Обновите среду выполнения, перезапустите затронутые службы, а затем повторно сканируйте те же приложения с помощью Trending Vulnerability Intrusive Options на исправленных системах или за пределами рабочей среды, с согласованиями и окном обслуживания. Если QID все еще отображается, исправление не завершено, поэтому проверьте, обслуживает ли запросы исправленная среда выполнения.

← Все статьи

О чём эта статья

Ещё в разделе «Кибербезопасность»

Все →
Zscaler представляет новые инновации для обеспечения безопасности агентного ИИ
Zscaler

Zscaler представляет новые инновации для обеспечения безопасности агентного ИИ

Обзор фабрики Gemini, ускоряющей решения для партнеров
Mandiant

Обзор фабрики Gemini, ускоряющей решения для партнеров

Эксперименты с ClusterNetworkPolicy в GKE
Mandiant

Эксперименты с ClusterNetworkPolicy в GKE

«Трилемма» SASE: как регулируемые предприятия обеспечивают цифровой суверенитет, устойчивость и глобальную киберразведку
Palo Alto Networks

«Трилемма» SASE: как регулируемые предприятия обеспечивают цифровой суверенитет, устойчивость и глобальную киберразведку

Критическая уязвимость RCE в Apache HTTP Server: всё, что нужно знать
Wiz

Критическая уязвимость RCE в Apache HTTP Server: всё, что нужно знать

Безопасность приложений для соответствия требованиям HIPAA: полное руководство
Veracode

Безопасность приложений для соответствия требованиям HIPAA: полное руководство

Ещё от Qualys

Раширяющаяся поверхность атаки требует новой операционной модели
Qualys

Раширяющаяся поверхность атаки требует новой операционной модели

Cloud Agent теперь в контейнере: обеспечение безопасности хостов для недоступных вам узлов
Qualys

Cloud Agent теперь в контейнере: обеспечение безопасности хостов для недоступных вам узлов

PHP2Shell в Windows и macOS: автоматизация обновления PHP с агентом и без него
Qualys

PHP2Shell в Windows и macOS: автоматизация обновления PHP с агентом и без него

Авторизация FedRAMP — это лишь первый шаг: как сохранять соответствие с помощью Qualys Policy Audit
Qualys

Авторизация FedRAMP — это лишь первый шаг: как сохранять соответствие с помощью Qualys Policy Audit

Практическая реализация CISA AA26-194A: Автоматизация проверки безопасности маршрутизаторов Cisco с помощью Qualys Policy Audit
Qualys

Практическая реализация CISA AA26-194A: Автоматизация проверки безопасности маршрутизаторов Cisco с помощью Qualys Policy Audit

Не удается обновить Node.js? Создайте временное решение с помощью имеющихся у вас средств контроля
Qualys

Не удается обновить Node.js? Создайте временное решение с помощью имеющихся у вас средств контроля