PHP2Shell (CVE-2026-109618, CVE-2026-109619): что делать владельцам сайтов

21 октября 2026 года команда PHP выпустила исправления двух критических уязвимостей, CVE-2026-109618 и CVE-2026-109619. Вместе их называют PHP2Shell. Атакующему не нужны ни логин, ни пароль. Достаточно одного специально составленного запроса к вашему сайту, чтобы запустить на сервере свой код и забрать сайт себе. Через несколько часов после выхода исправлений компания watchTowr сообщила о попытках эксплуатации обеих уязвимостей, а Cloudflare написала, что видит первые атаки.

Если ваш сайт, интернет-магазин или админка работают на PHP, обновлённая версия PHP нужна серверу сегодня.

Что произошло

20 октября команда PHP объявила о критическом релизе, а 21 октября в 14:00 UTC опубликовала исправленные версии 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Сама команда PHP оценивает уязвимости в 9,2 из 10 по CVSS v4.0, это критический уровень. Одна связана с тем, как PHP ведёт себя при нехватке памяти. Вторая позволяет данным одного запроса попасть в следующий запрос, который обрабатывает тот же процесс на сервере.

Под удар попадают все способы запуска PHP на веб-сервере: PHP-FPM, Apache с mod_php, php-cgi, LiteSpeed и FrankenPHP. Самым опасным команда PHP считает Apache с mod_php. В её бюллетене описан показанный на практике эксплойт: один запрос без авторизации запускает атаку ещё до того, как выполнится код сайта.

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

Касается ли это вас?

Пройдитесь по пунктам. Хватит одного «да».

  • Сайт работает на WordPress, WooCommerce, Laravel, OpenCart, Битрикс, Drupal, Magento или другой системе на PHP.
  • У компании есть админка, личный кабинет клиента или API на PHP. Бэкенд мобильного приложения тоже считается.
  • Хостинг или разработчик не подтвердили вам, что PHP на сервере уже обновлён.
  • На сервере стоит панель управления хостингом вроде aaPanel. Некоторые панели в день релиза обновлённый PHP не выпустили.
  • У вас PHP 8.1 или более старая версия.

Если ответов вы не знаете, это уже повод спросить сегодня.

Что атакующий может сделать с вашим сайтом

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

  • полный контроль над сайтом: правка страниц, новые учётные записи администраторов, перенаправление посетителей;
  • доступ к базе данных: имена клиентов, почта, адреса, заказы;
  • вредоносный код или спам-страницы на вашем сайте;
  • предупреждение Google в поиске и в браузере, после которого трафик и продажи стоят, пока сайт не вычистят.

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

Что сделать сегодня

1. Узнайте версию PHP. Её показывает панель управления хостингом, обычно в разделе «Версия PHP» или «Настройки PHP». В WordPress откройте «Инструменты → Здоровье сайта → Информация → Сервер». На Ubuntu после обновления безопасности номер может остаться старым, например 8.3.6: Ubuntu исправляет пакет, а номер версии не меняет. Поэтому хостингу или разработчику нужно проверить версию пакета.

2. Попросите хостинг или разработчика обновить PHP. Это письмо можно отправить без правок:

Здравствуйте. 21 октября 2026 года вышли исправления PHP для критических уязвимостей CVE-2026-109618 и CVE-2026-109619 (PHP2Shell). Подтвердите, пожалуйста, что PHP на нашем сервере обновлён до исправленной версии (8.5.12, 8.4.27, 8.3.36, 8.2.35 или пакет дистрибутива с исправлением) и что PHP-FPM или Apache перезапущен. Если у нас PHP 8.1 или старее, сообщите, пожалуйста, как вы планируете закрыть уязвимость. И проверьте, пожалуйста, логи сервера на признаки эксплуатации начиная с 21 октября.

3. Если у вас PHP 8.1 или старее, запланируйте переход на поддерживаемую версию. Для 7.4, 8.0 и 8.1 команда PHP опубликовала исправления только в исходном коде. Значит, кому-то придётся собрать PHP из исходников с этими исправлениями или перевести сайт на более новую версию.

Если отключить session.upload_progress.enabled в настройках PHP, часть пути атаки закроется. Команда PHP прямо пишет, что безопасным сервер это не делает. Считайте это временной мерой до обновления.

Ваша версия и что делать

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

Ubuntu уже выпустила исправленные пакеты. Для других дистрибутивов Linux смотрите бюллетень безопасности своего поставщика.

Как мы закрыли это у наших клиентов

PHP2Shell (CVE-2026-109618, CVE-2026-109619): что делать владельцам сайтов

Команда PHP опубликовала исправления в 14:00 UTC. Наши инженеры взялись за работу примерно через час. Ещё через два часа, около 17:00 UTC, были закрыты все серверы, которые мы обслуживаем: 88 проектов на нашей поддержке.

На каждом сервере мы сначала отключали уязвимый механизм, потом ставили исправленный PHP. В панелях вроде aaPanel обновлённого PHP в день релиза не было, поэтому мы собирали PHP из исходников с исправлениями. Так же поступили с проектами на PHP 7.4, 8.0 и 8.1, которые команда PHP больше не обновляет. После обновления прошлись по логам серверов в поисках следов использования уязвимости. Не нашли.

Наш автоматический мониторинг работает круглосуточно, а инженеры реагируют, когда он фиксирует инцидент.

Как мы это делали, по шагам: как мы закрыли 88 PHP-проектов за три часа.

Не уверены, что ваш сайт защищён?

Проверим версию PHP и обновим её в течение одного рабочего дня. Если сайт работает на PHP 8.1 или старее, подскажем, что в вашем случае быстрее и дешевле: сборка с исправлениями или переход на новую версию.

Попросить нас проверить сайт

Если после этого нужна постоянная поддержка, загляните на страницы поддержки сайтов и поддержки серверов. Для магазинов на WordPress и WooCommerce у нас есть отдельная страница. Если подозреваете, что кто-то успел зайти до обновления, или хотите знать, что ещё у вас открыто, на это ответит тест на проникновение.

FAQ

Нужно ли обновляться, если сайт на WordPress?

Да. WordPress работает на PHP, а уязвимость находится в самом PHP. Обновление WordPress и плагинов её не закрывает, серверу нужна исправленная версия PHP.

Хостинг обновит PHP сам?

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

Сломается ли сайт после обновления?

Обновление внутри одной ветки, например с 8.3.x до 8.3.36, содержит только исправления безопасности и ошибок и на сайт влияет редко. Переход с 7.4 или 8.1 на более новую ветку может сломать старые плагины или код, поэтому такой переход сначала нужно протестировать.

Достаточно ли отключить session.upload_progress?

Нет. Это закрывает часть одного из путей атаки. Команда PHP пишет, что проблему решает только обновление.

Источники

Расскажите о своём проекте

Опишите задачу в нескольких строках. В течение одного рабочего дня мы ответим вопросами или первым мнением об объёме работ и стоимости.

Удобнее написать на почту или созвониться?

welcome@revolsource.com
+38 097 662 23 20

Revol Software OÜ, Таллин, Эстония. Наша команда распределена по всему миру.

Присоединяйтесь к нашей команде

Присылайте резюме на career@revolsource.com