Какие версии PHP уязвимы: список и как проверить сайт
Три одинаковые коробки в ряд: две стоят ровно с крышками, у средней выпало дно и выкатился зелёный шарик

Какие версии PHP уязвимы: список и как проверить сайт

Уязвимы все ветки PHP 8.0 и старше: для них нет патчей. Поддерживаемые 8.2–8.4 безопасны только с последним минорным обновлением.

Какие версии PHP уязвимы

Уязвимы все версии PHP, снятые с поддержки: ветки 8.0 и старше, включая популярные 7.4, 7.2 и 5.6. Поддерживаемые ветки тоже уязвимы, если на них не установлен последний патч-релиз.

Для веток без поддержки новые уязвимости уже не исправляются, и каждая найденная дыра остаётся открытой навсегда.

Вопрос «какие версии PHP уязвимы» чаще всего задают после уведомления от хостинга, сообщения антивирусного сканера или предупреждения в панели CMS. Ниже разберём, как устроен жизненный цикл PHP, какие ветки сегодня опасны, какие конкретные CVE делают их мишенью для атак и что нужно сделать, чтобы проверить свой сайт и безопасно перейти на актуальную версию. Данные актуальны на 2025 год, а точные даты всегда стоит сверять на официальной странице поддерживаемых версий на php.net.

Как устроена поддержка версий PHP

У каждой минорной ветки PHP (например, 8.2 или 8.3) есть строго определённый срок жизни. С версии 8.1 действует схема «2+2»: первые два года ветка получает активную поддержку, то есть исправления ошибок и безопасности, а ещё два года выходят только патчи безопасности. После этого наступает статус EOL (end of life): разработчики прекращают выпускать любые исправления.

Именно статус EOL и определяет, уязвима ли версия. Когда в PHP находят новую брешь, её закрывают только в поддерживаемых ветках. Исследователи и злоумышленники при этом видят изменение в коде и точно знают, что аналогичная проблема есть в старых версиях, но исправлять её там никто не будет.

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

жизненный цикл ветки php

От релиза до статуса EOL: четыре года

01

Релиз

Ветка выходит в ноябре. Начинается отсчёт четырёх лет.

02

Активная поддержка

2 года: исправляются баги и уязвимости, выходят патч-релизы.

03

Только безопасность

Ещё 2 года: выходят лишь критичные патчи безопасности.

04

EOL

Патчей нет. Любая новая CVE остаётся открытой навсегда.

Ветка PHPСтатусПоддержка безопасности до
8.4Активная поддержка31 декабря 2028
8.3Активная поддержка31 декабря 2027
8.2Только безопасность31 декабря 2026
8.1Только безопасность, скоро EOL31 декабря 2025
8.0EOL, уязвима26 ноября 2023
7.4EOL, уязвима28 ноября 2022
7.0–7.3EOL, уязвимы2019–2021
5.6 и старшеEOL, критически уязвимы31 декабря 2018 и ранее

Что означает EOL на практике

Если вы видите в таблице статус EOL, это не абстрактное предупреждение. Это значит, что команда PHP не будет выпускать для этой ветки исправления даже при обнаружении критической бреши с удалённым выполнением кода. Всё, что найдено после даты окончания поддержки, остаётся доступным для эксплуатации.

Особенно рискованны версии PHP 5.6 и 7.x: на них до сих пор работает множество сайтов на устаревших CMS, самописных проектах и старых интернет-магазинах. Автоматические сканеры ботнетов ищут именно такие сайты по заголовку X-Powered-By, по структуре ответов и по известным путям к уязвимым скриптам.

Отдельно отметим PHP 8.0. Многие считают его «ещё новым», но поддержка закончилась 26 ноября 2023 года. Формально это уже не безопасная версия, и миграция с неё на 8.2 или 8.3 обычно проходит заметно проще, чем с 7.x.

известные cve

Три уязвимости, которые массово эксплуатировали

CVE-2024-4577CVSS 9.8

Внедрение аргументов в PHP-CGI на Windows

Затронуты 8.1 до 8.1.29, 8.2 до 8.2.20 и 8.3 до 8.3.8. Позволяет выполнить произвольный код на сервере.

CVE-2019-11043CVSS 9.8

Удалённое выполнение кода в PHP-FPM с nginx

Затронуты 7.1 до 7.1.33, 7.2 до 7.2.24 и 7.3 до 7.3.11 при определённой конфигурации nginx.

CVE-2012-1823старая, но живая

Параметры запроса как аргументы php-cgi

Затронуты 5.3 до 5.3.12 и 5.4 до 5.4.2. Приводит к раскрытию исходного кода и выполнению команд.

Номер версии — не всё: бэкпорты и дистрибутивы

Есть важный нюанс, из-за которого сканеры нередко дают ложные срабатывания. Поставщики дистрибутивов (Debian, Ubuntu, AlmaLinux и другие) могут переносить исправления безопасности в «старые» пакеты, не меняя основной номер версии. Поэтому PHP 7.4 из пакета дистрибутива с активной поддержкой может быть закрыт от известных CVE, а чистая сборка 7.4 с официального сайта PHP — нет.

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

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

Чем рискует сайт на уязвимой версии PHP

  1. 01

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

  2. 02

    Утечка данных: попадают в открытый доступ базы клиентов, заказы, пароли администраторов и ключи API.

  3. 03

    Заражение и редиректы: на сайт внедряют вредоносные скрипты и спам-страницы, из-за чего он попадает под фильтры Яндекса и Google.

  4. 04

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

  5. 05

    Потеря позиций и трафика: поисковики помечают заражённые сайты предупреждением, что снижает доверие и конверсию.

  6. 06

    Несовместимость с новыми библиотеками: современные версии Composer-пакетов, плагинов и расширений уже не поддерживают PHP 7.x.

Как быстро определить версию PHP на своём сайте

Чтобы понять, нужно ли вам срочно что-то делать, достаточно узнать точный номер версии, включая патч. Самый надёжный способ — посмотреть версию именно той среды, в которой выполняется сайт, а не той, что установлена в консоли по умолчанию. На одном сервере часто работают сразу несколько версий PHP, и консольный php -v может показывать совсем другую ветку, чем FPM или модуль веб-сервера.

Удобнее всего проверять версию в панели хостинга: в большинстве панелей есть раздел выбора версии PHP для каждого домена. Вторая надёжная опция — временный файл с вызовом phpinfo(), который после проверки нужно сразу удалить, чтобы не раскрывать конфигурацию. Для WordPress, Битрикс и других CMS версия обычно отображается в административной панели в разделе диагностики.

Как проверить и безопасно обновить PHP

  1. 01

    Узнайте точную версию: через панель хостинга, файл с phpinfo() или раздел диагностики CMS. Запишите номер полностью, например 7.4.33 или 8.2.18.

  2. 02

    Сверьте ветку с таблицей поддержки. Если она в статусе EOL, обновление нужно планировать немедленно. Если ветка поддерживается, убедитесь, что установлен последний патч-релиз.

  3. 03

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

  4. 04

    Создайте тестовую копию сайта (staging) и переключите на ней PHP на целевую версию: 8.3 или 8.4 для большинства проектов.

  5. 05

    Обновите CMS, плагины, темы и зависимости Composer до версий, совместимых с новой веткой. Команда composer audit покажет известные уязвимости в пакетах проекта.

  6. 06

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

  7. 07

    Переключите PHP на рабочем сайте в период минимальной нагрузки и несколько дней следите за логами. Проверьте разделы безопасности в Яндекс Вебмастере и Google Search Console.

Почему «и так работает» — плохой аргумент

Самая частая причина, по которой владельцы откладывают обновление, — страх что-то сломать. Он понятен: при переходе с 7.x на 8.x действительно исчезли или изменили поведение некоторые функции, а старые плагины и самописный код могут выдавать ошибки.

Но стоимость миграции растёт со временем. Чем дольше сайт живёт на старой ветке, тем больше накапливается несовместимостей, и тем сложнее переходить сразу через несколько мажорных версий. Плановое обновление раз в 1–2 года обходится существенно дешевле, чем срочное восстановление после взлома.

Типичные ошибки при оценке уязвимости PHP

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

Как рассуждают

  • «Мой сайт маленький, он никому не нужен»: атаки автоматизированы и сканируют адреса подряд.
  • «Я скрыл версию PHP, значит, меня не найдут»: уязвимости проверяют перебором, а не только по заголовкам.
  • «У меня 8.1, это новая версия»: поддержка заканчивается 31 декабря 2025 года, а старые патчи уязвимы.
  • «Сайт работает стабильно, зачем трогать»: стабильность не отменяет открытых CVE.

Как правильно

  1. 01

    Оценивайте и ветку, и номер патча, и источник сборки PHP.

  2. 02

    Планируйте переход на поддерживаемую ветку заранее, за 6–12 месяцев до EOL.

  3. 03

    Включите автоматические обновления безопасности ОС и пакетов PHP.

  4. 04

    Используйте скрытие версии (expose_php = Off) только как дополнение к обновлению, а не вместо него.

Подготовка к обновлению: на что смотреть в первую очередь

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

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

чек-лист перед обновлением

Семь проверок до переключения версии PHP

  • Резервная копияфайлов и базы данных, проверенная восстановлением
  • Тестовая копиясайта с тем же набором плагинов и данных
  • Версии CMS и плагиновобновлены до совместимых с PHP 8.x
  • Composer-зависимостипроверены командой composer audit
  • PHP-расширения(mysqli, gd, curl, mbstring) подключены для новой версии
  • Журнал ошибокпроверен на предупреждения об устаревших функциях
  • План откатана предыдущую версию на случай критичной ошибки
Опция expose_php = Off в php.ini убирает заголовок X-Powered-By с номером версии, но не закрывает уязвимости. Это лишь незначительное усложнение разведки, а не защита.

Итоги: какие версии PHP считать безопасными

Безопасны только поддерживаемые ветки с последним патч-релизом: сегодня это PHP 8.2, 8.3 и 8.4.
  1. 01

    Все ветки 8.0 и старше, включая 7.4 и 5.6, сняты с поддержки и уязвимы.

  2. 02

    PHP 8.1 получает только патчи безопасности до 31 декабря 2025 года, поэтому переход нужно планировать заранее.

  3. 03

    Даже поддерживаемая ветка уязвима без последнего патча, как показывает CVE-2024-4577.

  4. 04

    Проверяйте и номер версии, и источник сборки: бэкпорты дистрибутивов меняют картину.

  5. 05

    Обновление проводите по плану: резервная копия, тестовая копия, проверка зависимостей, мониторинг.

Проверьте версию PHP на своём сайте сегодня: это занимает пару минут, а цена откладывания — потенциальный взлом, потеря данных и просадка в поисковой выдаче Яндекса и Google. Если ваш проект работает на устаревшей ветке, лучше составить план миграции сейчас, пока есть время на спокойную проверку и тестирование.

Часто задаваемые вопросы

Проверим версию PHP и безопасность вашего сайта за один день

Найдём устаревшие компоненты, подготовим безопасный план обновления без простоя и потери данных

Бесплатный аудитОбновление без простояРезервная копия перед работами

Более 100 сайтов переведены на PHP 8

Политика конфиденциальности

При оставлении заявки на ресурсе «https://gurucontext.ru» пользователи предоставляют следующие сведения:

  • Имя
  • Контактный телефон или Telegram
  • Адрес сайта пользователя (не обязательно)

Также администрация сайта получает данные об IP-адресе посетителей, типе браузера, времени нахождения на сайте и прочие подобные сведения через сервисы статистики.

Использование информации

Вся полученная информация используется администрацией «https://gurucontext.ru» исключительно в целях связи с клиентом.

Защита персональных данных

Компания «https://gurucontext.ru» обязуется не разглашать сведения, полученные от пользователей, и хранит их в защищённом виде.

Предоставление данных третьим лицам

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

Контакты

Телефон: +7 (499) 955-47-00.
E-mail: info@gurucontext.ru.