PHP2Shell: срочные исправления уязвимостей RCE

PHP выпустил поправку для двух критических уязвимостей, CVE-2026-109618 и CVE-2026-109619, которые исследователи назвали PHP2Shell. Все поддерживаемые версии PHP необходимо обновить как можно быстрее. По информации PHP, обе уязвимости могут разрешить удаленное выполнение кода без аутентификации. Команда безопасности PHP оценила каждую из них в 9,2 балла по CVSS v4.0.

21 октября 2026 года вышли версии PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35, в которых эти уязвимости исправлены. Жизненный цикл PHP 8.1 и более старых версий завершился, поэтому они больше не получают официальных обновлений. В то же время, команда безопасности PHP опубликовала минимальные исправления, перенесенные в исходный код PHP 7.4, 8.0 и 8.1. Пока не сообщалось о случаях использования этих уязвимостей в реальных атаках, и ни одна из них не внесена в каталог CISA KEV. Своевременная установка обновлений поможет предотвратить атаки с их применением. В частности, попытки эксплуатации предыдущей критической уязвимости PHP CVE-2024-4577 начались уже в течение суток после ее обнародования.

Обновление поддерживаемых версий PHP – относительно простая задача. Значительно сложнее выявить все установленные экземпляры PHP в сети. Это касается как систем, недоступных для внешнего наблюдения, так и версий, которые PHP больше не обновляет. CERT-EU и Федеральное управление по информационной безопасности Германии (BSI) опубликовали рекомендации по безопасности для обеих уязвимостей.

Что означает PHP2Shell для версий PHP с завершенным жизненным циклом

На данный момент PHP поддерживает четыре ветки версий: 8.2 и 8.3 получают только исправления безопасности, тогда как 8.4 и 8.5 находятся на этапе активной поддержки. Поддержка безопасности PHP 8.2 завершается 31 декабря 2026 года.

Жизненный цикл всех более старых веток уже закончился:

  • PHP 8.1 – 31 декабря 2025 года.
  • PHP 8.0 – 26 ноября 2023 года.
  • PHP 7.4 – 28 ноября 2022 года.
  • PHP 5.6 – 31 декабря 2018 года.

В сообщениях PHP указано, что все версии старше 8.2.35 уязвимы. Для веток с завершенным жизненным циклом PHP рекомендует использовать исправления, перенесенные в соответствующие версии разработчиками дистрибутивов или поставщиками долгосрочной поддержки (LTS). Кроме того, команда безопасности PHP опубликовала минимальные исправления в исходном коде PHP 7.4, PHP 8.0 и PHP 8.1 для тех, кто самостоятельно собирает программное обеспечение. Более старые ветки, в частности PHP 5.6, не получают ни одного из этих вариантов патчей. Однако прежде чем устранить уязвимости в таких системах, необходимо определить, где они работают.

В интернете до сих пор используется большое количество устаревших PHP. По результатам подсчета баннеров Shodan, проведенного Mallory 20 октября 2026 года, около 884 000 доступных из интернета хостов сообщают об использовании версий PHP с завершенным жизненным циклом. Это составляет 59% от примерно 1,5 млн хостов, вообще раскрывающих информацию о версии PHP. Еще около 740 тысяч хостов не раскрывают свою версию PHP. Важно, что эти цифры получены на основе баннеров служб и не означают, что уязвимость всех указанных систем подтверждена.

Отсутствие информации о версии PHP в баннере не означает, что PHP не используется на соответствующем сервере. PHP также работает в составе панелей управления, таких как cPanel и Plesk, систем управления содержимым и программного обеспечения других производителей. В таких случаях обновления зависят от графиков соответствующих поставщиков или вообще не устанавливаются.

Оценка рисков PHP2Shell

Информация об обеих уязвимостях попала в открытый доступ до планируемого согласованного раскрытия. Из-за этого PHP выпустил исправления на день раньше начальной даты. По состоянию на 21 октября 2026 года watchTowr и BSI сообщают об отсутствии подтвержденных случаев эксплуатации этих уязвимостей в реальных атаках. Ни одна из них также не внесена в каталог CISA KEV. В то же время, возможность практического использования уязвимостей подтверждена. В сообщении PHP указано, что удаленное выполнение кода без проверки подлинности удалось подтвердить через HTTP для mod_php со стандартными ограничениями на входящие данные и использование памяти.

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

Технические подробности CVE-2026-109618 и CVE-2026-109619 в PHP

По оценке PHP, под угрозой находятся все экземпляры, обрабатывающие веб-запросы. Это касается PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Наивысший уровень риска производитель определяет для mod_php, поскольку запрос без аутентификации может вызвать атаку еще до начала выполнения кода приложения. В обоих сообщениях среди типов уязвимостей указано использование памяти после освобождения (use-after-free, CWE-416). В ChangeLog обе уязвимости приведены в пределах одного исправления ядра PHP – «Avoid state corruption via bailout» (предотвращение повреждения состояния при аварийном завершении выполнения).

CVE-2026-109618

  • CVSS 9.2 – Критическая
  • EPSS: ожидается проверка

Удаленное выполнение кода (RCE) из-за повреждения данных в памяти вследствие ее исчерпания (OOM) (GHSA-w8hw-w9fx-j79w). Если PHP исчерпывает доступную память в момент, когда внутренние данные запроса инициализированы частично, процедура очистки после обработки запроса может ошибочно воспринять некорректные данные как действительные.

CVE-2026-109619

  • CVSS 9.2 – Критическая
  • EPSS: ожидается проверка.

Удаленное исполнение кода (RCE) из-за использования устаревшего глобального состояния (GHSA-6wmf-4rv5-p3rp). Внутреннее состояние, связанное с одним запросом, может сохраняться в постоянном рабочем процессе даже после освобождения выделенной ему памяти. Вследствие этого следующий запрос, обрабатывающий тот же рабочий процесс, может использовать это состояние.

Полные технические подробности приведены в сообщениях PHP.

Уязвимые версии PHP и способы устранения CVE-2026-109618 и CVE-2026-109619

Все поддерживаемые экземпляры необходимо обновить до версий PHP 8.5.12, 8.4.27, 8.3.36 или 8.2.35 в соответствии с используемой веткой. При использовании версии с завершенным жизненным циклом рекомендуется перейти на поддерживаемую ветку. Поскольку поддержка безопасности PHP 8.2 завершается 31 декабря 2026 года, целесообразнее выбрать PHP 8.4 или 8.5. Если обновление до поддерживаемой ветки пока невозможно, необходимо проверить наличие исправлений, перенесенных в соответствующие версии поставщиком дистрибутива или LTS. Альтернативный вариант – самостоятельная сборка PHP с использованием исправленного исходного кода для версий 7.4, 8.0 и 8.1.

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

  • Установка memory_limit=-1 для снижения риска эксплуатации CVE-2026-109618.
  • Установка session.upload_progress.enabled=0 для снижения риска эксплуатации CVE-2026-109619.

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

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

Ветка PHPСтатусВерсия с исправлениемПримечания
8.5Активная поддержка до 31 декабря 2027 года8.5.12
8.4Активная поддержка до 31 декабря 2026 года8.4.27
8.3Только исправления безопасности до 31 декабря 2027 года8.3.36
8.2Только исправления безопасности до 31 декабря 2026 года8.2.35Рекомендуется перейти на 8.4 или 8.5
8.1 и старшеЖизненный цикл завершенОфициальной версии с исправлением нетОпределены как уязвимые. Минимальные исправления доступны в исходном коде для 7.4, 8.0 и 8.1. Наличие пакетов с перенесенными поправками необходимо проверять у поставщика дистрибутива или LTS.

Как обнаружить уязвимые экземпляры PHP с OPENVAS (Enterprise)

В OPENVAS SCAN (Enterprise версии сканера сетевых уязвимостей) проверки CVE-2026-109618 и CVE-2026-109619 работают как при сканировании с аутентификацией, так и без нее. Однако эти два метода позволяют получить разную информацию.

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

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

Для углубленного поиска на хостах Windows перед сканированием необходимо включить обнаружение портативных приложений. Для этого нужно:

  1. Открыть конфигурацию сканирования для редактирования, например копию Full and fast.
  2. Прокрутить страницу в раздел Network Vulnerability Test Preferences.
  3. Найти параметр Options for Local Security Checks.
  4. Для параметра Enable Detection of Portable Apps on Windows установить значение yes.
  5. Сохранить изменения.

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

Вывод

CVE-2026-109618 и CVE-2026-109619 – две критические уязвимости PHP, которые могут разрешить удаленное выполнение кода без аутентификации.

PHP устранил их в версиях 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Для веток с завершенным жизненным циклом устранение уязвимостей зависит от доступности исправлений, перенесенных к более старым версиям.

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

Получить пробную версию OPENVAS (Enterprise)

Подписаться на новости