PHP2Shell: критические уязвимости PHP

21 октября 2026 года разработчики PHP выпустили обновления, устраняющие две критические уязвимости — CVE-2026-109618 и CVE-2026-109619, получившие общее название PHP2Shell. При определённых условиях они позволяют удалённому злоумышленнику выполнить произвольный код на сервере без предварительной авторизации. Для устранения проблем необходимо установить исправленную версию PHP или обновлённый пакет от поставщика программного обеспечения. Откладывать проверку безопасности не рекомендуется: последствия успешной атаки могут затронуть не только сервер, но и работающие на нём сайты.

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

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

Это означает, что обновление WordPress, 1С-Битрикс, OpenCart или другой системы управления контентом само по себе не устраняет уязвимость. Необходимо проверить PHP, который используется веб-сервером, и убедиться, что на нём установлена версия с исправлениями.

Какие ошибки исправили разработчики

Уязвимости CVE-2026-109618 и CVE-2026-109619 связаны с обработкой внутренних данных и управлением памятью. В определённых сценариях ошибки могут привести к выполнению постороннего кода на сервере.

ИдентификаторСуть проблемыВозможные последствия
CVE-2026-109618При нехватке памяти PHP может прервать обработку запроса, оставив часть внутренних данных в некорректном состоянии. Во время последующей очистки эти данные могут быть обработаны неправильно.Удалённое выполнение произвольного кода
CVE-2026-109619Внутреннее состояние запроса может сохраниться после освобождения выделенной для него памяти. Следующий запрос в том же рабочем процессе способен обратиться к устаревшим данным.Выполнение кода в контексте уязвимого процесса PHP

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

Насколько опасны PHP2Shell

Обе уязвимости получили оценку 9,2 из 10 по шкале CVSS 4.0, что соответствует критическому уровню риска. Разработчики PHP предупреждают о возможности удалённого выполнения кода без авторизации. По данным исследователей watchTowr, уязвимости также представляют практический риск эксплуатации. CERT-EU сообщала о появлении демонстрационных эксплойтов, способных упростить подготовку атак.

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

При этом наличие уязвимой версии не означает, что сайт уже взломан. Однако отсутствие видимых проблем не подтверждает безопасность: атака может не сопровождаться очевидными изменениями в работе ресурса.

Какие версии PHP требуют обновления

Исправления опубликованы для PHP 8.2, 8.3, 8.4 и 8.5. Версии ниже указанных в таблице следует проверить на наличие обновлений безопасности.

Ветка PHPУязвимые версииИсправленная версия
PHP 8.5До 8.5.128.5.12
PHP 8.4До 8.4.278.4.27
PHP 8.3До 8.3.368.3.36
PHP 8.2До 8.2.358.2.35
PHP 8.1 и старшеПоддержка зависит от поставщика и наличия перенесённых исправленийНеобходимо уточнить у поставщика

Информация о версиях и исправлениях приведена в бюллетене Plesk. Важно учитывать, что дистрибутивы Linux и коммерческие поставщики могут выпускать собственные пакеты с исправлениями. В таких случаях номер версии иногда остаётся прежним, поэтому необходимо проверять информацию о конкретном пакете.

Для PHP 8.1 и более старых веток ситуация требует особого внимания: они больше не получают обычные обновлённые релизы от проекта PHP. Для PHP 7.4, 8.0 и 8.1 разработчики подготовили минимальные исправления исходного кода, а некоторые поставщики могут распространять собственные исправленные сборки. Если сервер использует устаревшую ветку, стоит уточнить статус безопасности у хостинга или поставщика ОС и запланировать переход на поддерживаемую версию.

Какие сайты могут пострадать

Уязвимости относятся к PHP, поэтому потенциальный риск существует у разных веб-приложений, работающих на затронутых версиях. Среди них:

  • WordPress и интернет-магазины на WooCommerce;
  • сайты на 1С-Битрикс;
  • интернет-магазины на OpenCart и Magento;
  • приложения на Laravel, Symfony и Yii;
  • самописные сайты, корпоративные порталы и лендинги на PHP.

Риск касается не только конкретной CMS. Уязвимость может затрагивать PHP-FPM, Apache с mod_php, php-cgi, FrankenPHP и LiteSpeed. Команда PHP отдельно отмечает повышенный риск для конфигураций с mod_php, где атака при определённых условиях возможна ещё до выполнения кода самого приложения.

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

Как проверить установленную версию PHP

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

1. Через панель хостинга.

Откройте настройки сайта и найдите раздел PHP. В зависимости от провайдера он может называться «Настройки PHP», «Конфигурация сайта» или «Версия PHP». Если отображается только номер ветки, запросите у поддержки точную версию или подтверждение установки исправленного пакета.

Проверку следует выполнить для всех ресурсов на сервере, включая тестовые сайты и старые проекты, которые продолжают работать.

2. Через SSH.

Если есть доступ к командной строке сервера, выполните команду:

php -v

В ответе будет указана версия PHP, установленная для командной строки. Но она не обязательно совпадает с версией, используемой веб-сервером. При необходимости дополнительно проверьте соответствующую службу PHP-FPM или настройки веб-сервера.

3. С помощью phpinfo().

При наличии необходимых прав можно временно создать файл phpinfo.php в каталоге сайта:

<?php
phpinfo();

После открытия файла в браузере найдите строку PHP Version. Затем обязательно удалите файл: он может раскрывать сведения о конфигурации сервера и установленных компонентах.

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

Как установить исправления PHP

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

Рекомендуемый порядок обновления:

  1. Создайте резервную копию. Сохраните файлы сайта, базу данных и необходимые настройки сервера, чтобы можно было восстановить ресурс при возникновении проблем.
  2. Проверьте совместимость. Если планируется переход на другую ветку PHP, убедитесь, что CMS, плагины, модули и собственный код поддерживают выбранную версию.
  3. Установите исправленную сборку. Для поддерживаемых веток ориентируйтесь на версии 8.2.35, 8.3.36, 8.4.27 и 8.5.12 либо на пакет поставщика, в котором подтверждено наличие исправлений.
  4. Перезапустите необходимые службы. После обновления перезапустите соответствующие процессы PHP, например PHP-FPM, или выполните необходимые действия для используемой конфигурации веб-сервера.
  5. Проверьте работоспособность сайта. Откройте главную страницу, каталог, карточки товаров, формы, корзину, личный кабинет и административную панель. Дополнительно изучите журналы ошибок.
  6. Убедитесь, что обновление применилось. Повторно проверьте версию PHP, пакет и состояние рабочих процессов. Если использовался временный файл phpinfo.php, удалите его.

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

Что делать, если сайт использует устаревшую версию PHP

Если ресурс работает на PHP 8.1 или более ранней ветке, не следует считать его защищённым только потому, что обновления в панели управления отсутствуют. Сначала нужно выяснить, предоставляет ли поставщик исправленный пакет для установленной версии.

В зависимости от ситуации можно выбрать один из вариантов:

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

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

Как PHP2Shell может повлиять на SEO сайта

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

После успешного взлома возможны следующие последствия:

  • появление скрытых ссылок, спам-текста и страниц, созданных для продвижения сторонних ресурсов;
  • настройка редиректов на неизвестные сайты, в том числе только для отдельных категорий посетителей;
  • внедрение вредоносных скриптов в шаблоны и страницы;
  • изменение файла robots.txt, карты сайта sitemap.xml и других элементов, влияющих на сканирование ресурса;
  • компрометация учётных записей и административных функций сайта.

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

После установки обновления рекомендуется проверить ресурс на признаки компрометации:

  • нет ли неожиданных перенаправлений, в том числе при открытии сайта с мобильных устройств;
  • не появились ли неизвестные администраторы в CMS;
  • не обнаруживаются ли подозрительные файлы, задания cron или изменения шаблонов;
  • не были ли изменены robots.txt, sitemap.xml и другие важные файлы;
  • нет ли уведомлений о проблемах безопасности в Яндекс Вебмастере и Google Search Console.

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

Что нужно сделать владельцам сайтов сейчас

Главная задача — выяснить, какая версия PHP используется на сервере, и подтвердить наличие исправлений для CVE-2026-109618 и CVE-2026-109619. Если установлен уязвимый релиз, необходимо обновить его или применить проверенный пакет поставщика, а затем убедиться, что новые настройки вступили в силу.

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

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

Читайте также