
Уязвимости PHP 8.3: что известно и как защитить сайт
Отдельной «уязвимости PHP 8.3» нет — есть серия CVE. Самая опасная, CVE-2024-4577 (CVSS 9.8), исправлена в 8.3.8. Обновите PHP до актуальной 8.3.x.
Уязвимости PHP 8.3: что известно и как закрыть риски
Единой «уязвимости PHP 8.3» не существует: это целая ветка с набором CVE, которые исправляют в минорных релизах 8.3.x. Самая серьёзная из них, CVE-2024-4577, закрыта в версии 8.3.8, поэтому защита сводится к обновлению до актуальной 8.3.x и правильной настройке окружения.
Запрос «уязвимость php 8.3» ищут по двум причинам: администраторы увидели тревожную новость или сканер безопасности выдал предупреждение. В статье мы разберём, какие проблемы действительно находили в этой ветке, кого они касаются, как за несколько минут проверить свой сервер и что сделать, чтобы сайт не оказался в выдаче Яндекса и Google с пометкой «опасный».
Почему «уязвимость PHP 8.3» — это не одна дыра
PHP 8.3 вышел 23 ноября 2023 года. С тех пор разработчики выпускают для ветки регулярные обновления: версии 8.3.1, 8.3.2 и далее. В каждом из них, помимо обычных багфиксов, бывают исправления безопасности. Поэтому правильнее говорить не об «уязвимости 8.3», а о перечне CVE, закрытых на разных этапах жизни ветки.
У каждой уязвимости свой набор условий. Одни зависят от операционной системы (самые громкие случаи связаны с Windows), другие от режима запуска PHP, третьи от того, использует ли ваш код конкретные функции, например `proc_open` или `password_verify`. Поэтому два сайта на одной и той же версии могут иметь совершенно разный уровень риска.
Общее правило простое: чем старее минорная версия внутри ветки, тем больше известных и уже описанных публично проблем она содержит. Для злоумышленников такие сайты удобная цель, ведь способы эксплуатации давно разобраны и автоматизированы.
Самая громкая уязвимость в ветке 8.3
Что произошло с CVE-2024-4577
В июне 2024 года стало известно об ошибке в обработке аргументов командной строки при запуске PHP через CGI на Windows. Из-за особенностей преобразования символов (механизм Best-Fit) специально сформированный запрос позволял передать интерпретатору собственные параметры и в итоге выполнить произвольный код на сервере. Под угрозой были ветки 8.1, 8.2 и 8.3 до исправленных релизов, а в ветке 8.3 безопасной стала версия 8.3.8.
Особенно уязвимыми оказались сборки вроде XAMPP на Windows, где режим CGI включён по умолчанию, а также сервера с нестандартной конфигурацией. Эксплуатация началась практически сразу после публикации деталей, и уязвимость использовали, в частности, для установки вредоносных программ-вымогателей.
В запросах к сайту подозрительный след выглядит как последовательность `%AD` в строке запроса. Если в логах веб-сервера встречаются такие обращения, сервер, вероятно, сканировали или пытались атаковать.
| Идентификатор | Суть проблемы | Кого касается | Где исправлено в 8.3 |
|---|---|---|---|
| CVE-2024-4577 | Внедрение аргументов в PHP-CGI, удалённое выполнение кода | Windows + режим CGI, в том числе XAMPP | 8.3.8 и новее |
| CVE-2024-8926 | Обход защиты от CVE-2024-4577 через особенности кодировок | Windows + режим CGI | 8.3.12 и новее |
| CVE-2024-1874 | Обход экранирования в proc_open и инъекция команд ОС | Windows, код с вызовами proc_open и массивом команд | Обновления 8.3.x в апреле 2024 года |
| CVE-2024-3096 | password_verify мог вернуть true для хеша с нулевым байтом | Редкий сценарий: хеш с нулевым байтом попадает в проверку | Обновления 8.3.x в апреле 2024 года |
Эта таблица не исчерпывающий перечень, а подборка наиболее показательных случаев. За время жизни ветки закрывали и другие проблемы: ошибки разбора многочастных форм, переполнение буфера в потоковых фильтрах, засорение логов в пуле процессов FPM. Актуальный и полный список исправлений всегда публикуется в журнале изменений (changelog) каждого релиза на официальном сайте PHP.
Важный практический вывод: если ваш сервер работает на Linux с PHP-FPM, конкретная CVE-2024-4577 на нём не воспроизводится. Но это не повод откладывать обновления. Разные уязвимости затрагивают разные компоненты, и заранее предсказать, какая из них окажется критичной для вашей конфигурации, невозможно.
Как проверить сервер и закрыть уязвимости PHP 8.3
- 01
Узнайте точную версию PHP командой `php -v` на сервере. Для веб-окружения версию может показать и `phpinfo()`, но сразу после проверки удалите этот файл: он раскрывает конфигурацию.
- 02
Определите режим запуска: PHP-FPM, mod_php или CGI/FastCGI, а также операционную систему. Связка Windows + CGI требует обновления в первую очередь.
- 03
Обновите PHP до последней доступной версии 8.3.x через пакетный менеджер, панель хостинга или свежий образ Docker (например, php:8.3-fpm).
- 04
Перезапустите php-fpm или веб-сервер. Без перезапуска в памяти продолжает работать старый процесс, а значит, уязвимость остаётся.
- 05
Запустите `composer audit`, чтобы проверить зависимости проекта по базам известных уязвимостей. Для постоянного контроля подключите автоматические оповещения в репозитории.
- 06
Просмотрите логи веб-сервера за последние недели: ищите запросы с `%AD` в строке запроса, необычными параметрами и всплески обращений к файлам php-cgi.
- 07
Проверьте разделы безопасности в Яндекс Вебмастере и Google Search Console: именно там поисковики сообщают о вредоносном коде и взломе.
Версия в пакете не всегда совпадает с версией в исходниках
На Debian, Ubuntu и других дистрибутивах мейнтейнеры нередко переносят исправления безопасности в старые пакеты, не меняя номер версии. В результате `php -v` может показывать, например, 8.3.6, но при этом нужные патчи уже внесены. Обратная ситуация тоже возможна: устаревший пакет из стороннего репозитория, куда исправления не попадают.
Поэтому при сомнениях сверяйтесь не только с номером, но и с журналом изменений пакета. Например, в Debian и Ubuntu его можно открыть командой `apt changelog php8.3-fpm`, а там уже искать нужный идентификатор CVE.
Если вы работаете на виртуальном хостинге, откройте панель управления и проверьте, какая версия PHP выбрана для вашего домена. Обычно её можно переключить в пару кликов, но перед этим стоит протестировать сайт на копии: в новых версиях меняется поведение некоторых функций.
Быстрая проверка PHP-сервера
php -v показывает 8.3.8 или новее.
Используется PHP-FPM, а не php-cgi на Windows.
После обновления перезапущены php-fpm и веб-сервер.
composer audit не находит известных уязвимостей.
Нет подозрительных запросов с %AD и странных параметров.
В Яндекс Вебмастере и Google Search Console нет угроз безопасности.
Типичные ошибки при обновлении PHP
Как делают неправильно
- Видят «8.3» в phpinfo и считают, что версия свежая, не глядя на минорный номер
- Оставляют файл с phpinfo() на сайте доступным из интернета
- Обновляют пакет, но не перезапускают php-fpm, и в памяти продолжает работать старый процесс
- Запускают PHP через CGI на Windows просто потому, что так настроено по умолчанию
Как делать правильно
- 01
Сверять точную версию (например, 8.3.8 и выше) с журналом изменений релиза
- 02
Удалять диагностические файлы сразу после проверки
- 03
Перезапускать службы после каждого обновления и проверять версию снова
- 04
Переходить на PHP-FPM и ограничивать доступ к исполняемым файлам интерпретатора
Жизненный цикл ветки: сколько ещё можно рассчитывать на поддержку
У каждой ветки PHP есть два этапа поддержки. Сначала два года идёт активная: в неё попадают и исправления ошибок, и патчи безопасности. Затем ещё два года выходят только исправления безопасности. Для PHP 8.3 активная поддержка завершилась в ноябре 2025 года, а патчи безопасности обещаны до конца 2027 года.
Это означает, что 8.3 остаётся приемлемым выбором для работающих проектов, но планировать переход на более новую ветку стоит заранее. Обновление в последний момент, когда поддержка уже закончилась, всегда обходится дороже и рискованнее.
Три даты, которые нужно помнить
Старт ветки: два года активной поддержки.
Дальше выходят только исправления безопасности.
Патчей больше не будет: нужен переход на новую версию.
Как уязвимость PHP отражается на поисковом трафике
Взлом сервера почти всегда заканчивается не только утечкой данных, но и проблемами с поисковой выдачей. На сайт внедряют скрытые ссылки, спам-страницы, редиректы на сторонние ресурсы. Яндекс и Google обнаруживают такой контент и могут пометить сайт предупреждением, понизить его позиции или вовсе исключить страницы из индекса.
Первые сигналы вы увидите в сервисах для вебмастеров: в Яндекс Вебмастере это раздел о нарушениях и безопасности, в Google Search Console отчёт о проблемах безопасности и ручных мерах. Подключите оба инструмента и включите уведомления, чтобы узнавать о заражении в первые часы, а не через месяц, когда трафик уже просел.
Что даёт своевременное обновление PHP
- 01
Закрытие известных критических уязвимостей, для которых уже есть готовые эксплойты
- 02
Сохранение позиций в Яндексе и Google: сайт без вредоносного кода не получает пометок и санкций
- 03
Защита персональных данных клиентов и снижение рисков, связанных с требованиями 152-ФЗ
- 04
Прирост стабильности и скорости за счёт исправленных ошибок и оптимизаций в новых релизах
- 05
Предсказуемая стоимость поддержки: небольшие обновления обходятся дешевле, чем срочный переход через несколько версий
Итог: что делать с уязвимостями PHP 8.3
- 01
Узнайте точную версию PHP и режим запуска на сервере
- 02
Обновитесь минимум до 8.3.8, а лучше до последней доступной 8.3.x, и перезапустите службы
- 03
Проверьте зависимости командой composer audit и просмотрите логи на следы атак
- 04
Подключите Яндекс Вебмастер и Google Search Console, чтобы вовремя получать сигналы о проблемах
- 05
Заранее запланируйте переход на более новую ветку PHP до конца поддержки 8.3
Безопасность PHP-проекта это не разовая настройка, а регулярная привычка: проверили версию, обновили, перезапустили, убедились. Потратив на это час в месяц, вы защитите и данные клиентов, и трафик из поиска. Если не хотите разбираться самостоятельно, специалисты проведут аудит и подготовят безопасный план обновления без простоя сайта.
Часто задаваемые вопросы
Да, в ранних релизах ветки была критическая CVE-2024-4577 (внедрение аргументов в PHP-CGI на Windows, оценка CVSS 9.8). Она закрыта в версии 8.3.8, поэтому достаточно обновиться до актуальной 8.3.x.
Проверьте точную версию командой php -v, определите, как запускается PHP (FPM, mod_php или CGI) и на какой ОС работает сервер. Максимальный риск у связки Windows + CGI, например у XAMPP с настройками по умолчанию.
Нельзя. Конкретно CVE-2024-4577 на такой конфигурации не воспроизводится, но в ветке 8.3 регулярно исправляют и другие ошибки: в обработке форм, потоков, паролей и логов FPM. Пропуск обновлений накапливает риск.
Ветка вышла 23 ноября 2023 года. Активная поддержка закончилась в ноябре 2025 года, а исправления безопасности выпускаются до конца 2027 года.
Если на сайт попал вредоносный код, Яндекс Вебмастер и Google Search Console показывают предупреждения о безопасности. Поисковики могут пометить ресурс как опасный и понизить его в выдаче, что бьёт по трафику.
Проверим безопасность вашего PHP-сервера до того, как это сделают злоумышленники
Проведём аудит версии PHP, режима запуска и зависимостей, а затем дадим понятный план обновления.
Спасибо за заявку!
Мы свяжемся с вами в ближайшее время.
Более 200 проверенных PHP-проектов



