На этой неделе нашли дыру в PHP — одном из самых распространённых языков, на которых работают сайты. 21 октября вышли исправления. Прошло четыре дня — а что с рунетом-то? Мы посмотрели на 10 000 самых заметных сайтов и попробовали понять, сколько из них уже обновились.

Короткий ответ: понять не получается. И это само по себе интересно.

Сколько это сайтов

Из 10 000 самых заметных сайтов рунета удалось понять, на чём работают 7 156. Из них на PHP — 4 315, то есть 60%.

Часть сайтов сама называет свою версию PHP — в служебной строке, которую сервер отдаёт браузеру вместе со страницей:

X-Powered-By: PHP/8.2.34

Таких 1 201 — примерно каждый четвёртый сайт на PHP. Все цифры ниже про них. Срез — 25 октября.

Что они говорят о себе

Точки на картинке в начале — эти сайты. По номеру версии они делятся на три группы:

  • 29,9% называют версию, вышедшую до исправления. Например, 8.2.34 — а исправление вышло в 8.2.35.

  • 48,2% называют последнюю версию своей ветки — 5.6.40, 7.4.33. Новых версий у этих веток уже не будет.

  • 21,9% называют исправленную версию.

Хочется сразу написать «78% сайтов уязвимы». Но так нельзя.

Почему по номеру ничего не понятно

Сам проект PHP выпустил исправленные версии только для свежих веток — 8.2–8.5. Старые ветки латают те, кто собирает PHP для хостингов и серверов: CloudLinux, Ubuntu и другие. И почти всегда они оставляют старый номер.

У CloudLinux первая исправленная сборка 8.4 называлась 8.4.26-2 — номер даже меньше, чем у официального исправления 8.4.27. В Ubuntu 22.04 PHP как был 8.1.2, так и остался, поменялся только хвост пакета: 8.1.2-1ubuntu2.28.

Выходит, PHP/5.6.40 у одного сайта — залатанная сборка от хостинга, у другого — забытый сервер, который годами никто не трогал. Снаружи они выглядят одинаково.

Три номера PHP и что из них следует
Три номера PHP и что из них следует

Хвост пакета, по которому можно хоть что-то сказать, показывают 7,8% сайтов. У остальных — голый номер, и по нему не скажешь ни «да», ни «нет».

На чём стоит рунет

Ветки PHP среди сайтов, которые называют версию
Ветки PHP среди сайтов, которые называют версию

Две трети сайтов, которые называют версию, — 65% — работают на ветках PHP, для которых официального исправления нет вообще. Самая людная — PHP 5: на нём треть всех сайтов, которые называют версию. Его перестали поддерживать в 2018 году.

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

У крупных сайтов исправление видно чаще?

Исправленная версия по месту в рейтинге
Исправленная версия по месту в рейтинге

Да: среди сайтов с 101-го по 1 000-е место исправленную версию называют 31,4%, среди сайтов с 1 001-го по 10 000-е — 20,9%. Но это не значит, что крупные быстрее обновляются: у крупного сайта чаще своя сборка с новым номером, у небольшого — хостинг, который залатал PHP под старым.

WordPress, Битрикс и остальные

Версия PHP по движкам
Версия PHP по движкам

Дыра в PHP, а не в движке — обновление WordPress или 1С-Битрикс её не закрывает. Но движок подсказывает, кто следит за сайтом. Исправленную версию называют 34,5% сайтов на WordPress, 28,9% — на 1С-Битрикс, 20,5% — на Joomla и 13,4% — сайтов, где движок не определяется.

А хостинги?

Версия PHP по сетям хостингов
Версия PHP по сетям хостингов

Разброс большой: исправленную версию называют от 4,4% сайтов в сети REG.RU до 43,4% — в сети FastVPS. Но рейтингом «кто быстрее залатал» этот график не является.

Посмотрите на Beget: три четверти его сайтов называют последнюю версию своей ветки — номер, который у старых веток больше не меняется. Хотя 22 октября Beget сообщил, что обновил все доступные версии PHP на виртуальном хостинге и серверах под своим администрированием. Обновил — а номер остался прежним. Ровно то, о чём вся эта статья.

Ещё две оговорки. В сети хостинга вперемешку его собственные серверы и VPS клиентов, которые клиенты обновляют сами. А у сайтов за Cloudflare или DDoS-Guard сам PHP работает где-то в другом месте. И версию показывают очень по-разному: у одних хостингов — 72% сайтов, у других — меньше процента.

Главное, что меняется по дням?

К концу 22 октября, через полтора дня после выхода исправлений, исправленную версию называли 248 сайтов. Потом — плюс 10, плюс 4 и плюс 1 за день. Кто обновлялся с новым номером, сделал это почти сразу, дальше — тишина.

Но тишина на графике не значит, что больше никто не латает: сборка со старым номером в эти столбики не попадает.

Так что с рунетом?

Снаружи точно сказать нельзя — ни нам, ни тем, кто напишет «78% сайтов уязвимы». Исправление часто приходит под старым номером, и по ответу сайта его не видно. Знают только те, у кого есть доступ к самому серверу: владелец или хостинг.

Графики обновляются каждый день — в исследовании Параграфа и на странице уязвимости в Пульсе Рунета.

Источники: бюллетень PHP, GHSA-6wmf-4rv5-p3rp, GHSA-w8hw-w9fx-j79w, CloudLinux, Ubuntu USN-8948-1, Beget.

Комментарии (5)


  1. Ptktysq
    26.10.2026 01:59

    Еще в нулевых я отключал вывод Server для apache, php, потом и для nginx убирал версию. Думаю, я не единственный параноик в рунете.
    В минимуме вы увидите "Server: nginx". Сайт использует php или нет? Для автора исследования — нет. Значит 60% — это нижняя планка оценки.


    1. Alaska Автор
      26.10.2026 01:59

      Да, всё так: 60% — нижняя граница. Если сервер ничего о себе не говорит, PHP мы видим только по косвенным признакам, а у части сайтов — не видим вовсе.

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


  1. DarkGenius
    26.10.2026 01:59

    А где вы взяли базу сайтов рунета?


  1. alterbred
    26.10.2026 01:59

    на 4 сайтах небольшой компании и 1 моём сайте пока около 80% запросов это попытки взлома через известные уязвимости Joomla, WP и других... немного изысканных атак с вирусами-трансформерами..
    PHP - во власти хостеров и ограничениях старых версий CMS
    Атак использующих PHP "дыры" пока не обнаружил, но на всякий случай дописал в htaccess

    <IfModule mod_rewrite.c>
    RewriteCond %{QUERY_STRING} PHP_SESSION_UPLOAD_PROGRESS [NC,OR]
    ......
    RewriteRule .* - [F]
    </IfModule>


  1. SerafimArts
    26.10.2026 01:59

    Небольшой оффтоп

    Сразу видно, что превьюшку делал клод =)

    Нормальный человек напишет “Топ N сайтов, которые сообщают о версии PHP” или “которые раскрывают версию…”, или “которые передают версию…”, но только клод 5/5.5 с завидным постоянством пишет “называют”. В данном случае: “Топ N сайтов, которые называют версию PHP”. Вроде и по-русски, но звучит по-инопланетному.

    Это у него такая багофича в обучении, которая с завидным постоянством косячит так на русском языке.

    На ревью бесит неимоверно.