Исследование3 минуты чтения
PHP2Shell: исправления вышли даже для PHP 5.2, но на сайтах их почти не видно
Какой выпуск PHP называют сайты Топ-10 000 рунета после PHP2Shell и почему по ответу сайта нельзя понять, закрыта ли уязвимость.
21 октября проект PHP закрыл две уязвимости PHP2Shell — CVE-2026-109618 и CVE-2026-109619, оценка 9,2 из 10. Через них чужой код выполняется на сервере без входа на сайт. Мы смотрим, какой выпуск PHP называют сайты Топ-10 000 рунета, — и почему по ответу сайта почти невозможно понять, закрыта ли у него дыра.
Красное — устаревший выпуск ветки, серое — последний выпуск ветки, зелёное и число — исправленный выпуск или пакет. Доли — от сайтов, которые называют версию PHP.
Топ-10 000 рунета, на 24 октября, 15:37 мск. Страница уязвимости
Топ-10 000 рунета, на 24 октября, 15:37 мск. Страница уязвимости
У кого виден исправленный выпуск
Как часто виден исправленный выпуск, зависит от места сайта в рейтинге. Но это доля тех, кто показывает определённый номер, а не скорость обновления: поставщики сборок часто оставляют прежний номер PHP.
Красное — устаревший выпуск ветки, серое — последний выпуск ветки, зелёное и число — исправленный выпуск или пакет. Доли — от сайтов, которые называют версию PHP.
Топ-10 000 рунета, на 24 октября, 15:37 мск. Страница уязвимости
Почему номер почти ничего не говорит
Проект PHP выпустил исправленные версии для четырёх живых веток: 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Для 7.4, 8.0 и 8.1 — только исправления в исходном коде. Дальше их подхватили поставщики сборок. CloudLinux к полуночи 22 октября по Москве выложила исправленные сборки PHP для cPanel — ветки с 5.2 по 8.5, а к утру — свои сборки alt-PHP. Ubuntu выпустила исправленные пакеты для старых веток. Почти везде номер PHP остался прежним: у CloudLinux исправленная сборка называлась 8.4.26.
Отличить такую сборку снаружи можно только по номеру пакета дистрибутива, который иногда стоит за номером PHP. Тогда исправление проверяется по бюллетеню поставщика. Но номер пакета показывают немногие сайты — сколько именно, видно в сводке выше. Остальные называют голый номер.
Кто называет версию
Версию PHP называют не все сайты, и это сильно зависит от хостинга. Отсутствие номера не значит, что его скрыли намеренно, но сравнивать хостинги по версиям из-за этого опасно: сравнивается и то, кто номер показывает.
Топ-10 000 рунета, на 24 октября, 15:37 мск. Страница уязвимости
На чём стоит рунет
Большинство сайтов, называющих версию, работают на ветках, которые проект PHP больше не поддерживает. Поддержка PHP 5 закончилась в 2018 году, PHP 7.4 — в 2022-м. Для большинства старых веток поставщики сборок выпустили исправления PHP2Shell, но не для всех: сборки CloudLinux для cPanel начинаются с 5.2. На ветке без поддержки следующая уязвимость может остаться без исправления.
Зелёное — ветка, для которой проект PHP выпустил исправленную версию; красное — ветка, которую он больше не выпускает.
Топ-10 000 рунета, на 24 октября, 15:37 мск. Страница уязвимости
Движки
Уязвим сам PHP, а не движок, но движок подсказывает, кто занимается сайтом.
Красное — устаревший выпуск ветки, серое — последний выпуск ветки, зелёное и число — исправленный выпуск или пакет. Доли — от сайтов, которые называют версию PHP.
Топ-10 000 рунета, на 24 октября, 15:37 мск. Страница уязвимости
Хостинги
На виртуальном хостинге и администрируемых серверах PHP обновляет хостер, на VPS и выделенных серверах без администрирования — клиент. Beget 22 октября сообщил, что обновил все версии PHP, вплоть до самых старых, на виртуальном хостинге и администрируемых серверах; владельцам VPS он предложил обновиться самим. FastVPS сдаёт серверы без полного администрирования.
В сети хостинга смешаны его серверы и серверы клиентов, а исправленная сборка часто сохраняет старый номер. Поэтому график показывает, какие выпуски называют сайты в сети хостинга, а не кто быстрее закрыл уязвимость. Сайты сгруппированы по сетям, через которые они доступны: у сайтов за CDN и защитой от DDoS сам PHP может работать в другой сети.
Красное — устаревший выпуск ветки, серое — последний выпуск ветки, зелёное и число — исправленный выпуск или пакет. Доли — от сайтов, которые называют версию PHP.
Топ-10 000 рунета, на 24 октября, 15:37 мск. Страница уязвимости
Доступность сайтов
Сколько сайтов на PHP сейчас не открывается и какой разброс для них обычен, видно в сводке выше. Но доступность ничего не говорит о попытках эксплуатации и взломах: взломанный сайт может продолжать работать.
Что проверить владельцу сайта
Проверять нужно конкретную сборку PHP по бюллетеню безопасности её поставщика, а не только номер PHP. На виртуальном хостинге проще спросить хостера, установлены ли исправления CVE-2026-109618 и CVE-2026-109619. Обновление WordPress или 1С-Битрикс уязвимость не закрывает. После установки исправленного пакета нужно перезапустить PHP.
Топ-10 000 рунета: стек известен у 7 156 сайтов, на PHP — 4 315, версию PHP называют 1 202. Доли — от них, на 24 октября, 15:37 мск.