В этой статье
Если сайт или интернет-магазин вашей компании работает на WordPress, Magento, Laravel или любой другой системе на PHP, попросите хостинг или технический отдел сегодня же обновить PHP до версии 8.5.12, 8.4.27, 8.3.36 или 8.2.35, а затем перезапустить сервер. Проект PHP выпустил эти версии 21 октября 2026 года, чтобы закрыть две критические уязвимости под названием PHP2Shell, каждая с оценкой 9.2 из 10. Они позволяют злоумышленнику выполнять команды на вашем сервере без какого-либо пароля. Национальное управление кибербезопасности Саудовской Аравии (NCA) в тот же день выпустило «критическое» предупреждение с рекомендацией обновиться, а компании по безопасности зафиксировали попытки эксплуатации за несколько часов до публикации исправления.
Что именно произошло?
Это уязвимости CVE-2026-109618 и CVE-2026-109619, и находятся они в самом языке PHP, а не в плагине или теме. В этом главное отличие: в нашей прошлой статье о исправлениях WordPress, которые стали картой для атакующих, ошибка была в программе, работающей поверх PHP. Здесь ошибка в фундаменте, на котором стоит вся эта программа. Поэтому обновлённый WordPress или короткий список плагинов вас не защищают.
Согласно первому бюллетеню безопасности PHP, первая уязвимость возникает, когда запросу не хватает памяти во время подготовки: PHP оставляет наполовину инициализированные данные и потом считает их корректными. Согласно второму бюллетеню, другая уязвимость оставляет данные предыдущего запроса после их освобождения, и следующий запрос в том же процессе их использует. Итог в обоих случаях одинаков: одного тщательно составленного веб-запроса достаточно, чтобы выполнить команды на сервере.
Уязвимости нашла команда Wiz Research с помощью моделей ИИ. В её отчёте сказано, что команда обнаружила их 19 августа 2026 года, сообщила команде PHP 24 августа и что каждая версия PHP начиная с 5.4 затронута хотя бы одной из них. По оценке Wiz, на PHP работает около 70% сайтов.
Затронут ли мой сайт?
Скорее всего да, если он работает на PHP и его версия старше указанных выше. Wiz продемонстрировала удалённое выполнение кода без авторизации на WordPress, Drupal и Joomla в стандартной конфигурации. Sansec в своём анализе расширила список до 11 платформ, среди них Magento 2.4.9, WordPress 7.1.2, Laravel 13.11, Symfony 8.1, phpMyAdmin, Nextcloud и WHMCS.
Чтобы узнать версию PHP, откройте панель хостинга (cPanel, Plesk или аналог) и найдите «PHP Version» или спросите свою команду. Обратите внимание на два момента:
- Версия 8.1 и более старые больше не поддерживаются и исправления не получат. Согласно таблице поддерживаемых версий PHP, сейчас поддерживаются только ветки 8.2, 8.3, 8.4 и 8.5.
- Сама ветка 8.2 теряет поддержку безопасности 31 декабря 2026 года, то есть через два с половиной месяца. Если обновляетесь сейчас, переходите на 8.4 или 8.5 и избавьте себя от второго обновления в ближайшее время.
Что сделать сегодня: пять шагов
- Найдите все места, где работает PHP. Сайт, магазин, панель администратора, любые внутренние системы и клиентские порталы. Многие компании забывают о старом сайте, который всё ещё доступен.
- Обновитесь до исправленной версии. 8.5.12, 8.4.27, 8.3.36 или 8.2.35. На виртуальном хостинге спросите провайдера письменно: вы применили обновление от 21 октября?
- Перезапустите PHP после обновления. В бюллетене PHP отмечено, что процесс, который не перезапустили, продолжает работать на старом коде, так что просто скачать обновление недостаточно.
- Если сайт на версии 8.1 или старше, запланируйте обновление на эту неделю и сначала проверьте его на тестовой копии, потому что некоторые старые плагины могут перестать работать.
- Проверьте журналы. Wiz советует искать необычные запросы на загрузку, за которыми следуют ошибки нехватки памяти, повторяющиеся ошибки HTTP 500 или слишком большие либо повреждённые сессионные cookie (PHPSESSID).
Если обновиться сегодня не получается
Бюллетени PHP предлагают временные меры, которые снижают риск, но не заменяют обновление: отключить session.upload_progress.enabled, установив значение 0, и перезапустить все процессы, а в версии 8.5 установить fatal_error_backtraces в 0. Если ваш сайт никогда не принимает загрузку файлов, можно также блокировать multipart-запросы на фронтенд-сервере.
Если сайт работает за Cloudflare, компания пишет в своём блоге, что развернула правила файрвола против этих уязвимостей с 3:02 UTC 21 октября, примерно за 9 часов до раскрытия, на всех тарифах, включая бесплатный. Но сама Cloudflare советует обновить PHP даже при такой защите, потому что атакующие постоянно меняют свои атаки.
Мнение Origami
Эта уязвимость напоминает, что безопасность сайта не заканчивается обновлением WordPress и плагинов. Под каждым сайтом есть язык программирования, сервер и настройки, и за всем этим кто-то должен следить. В компаниях мы часто видим сайт, созданный много лет назад, про который уже никто не знает, на какой версии PHP он работает и у кого есть доступ для обновления. Если это ваш случай, вопрос уже не «обновляться ли?», а «кто обновит сегодня?». В Origami мы создаём сайты и системы и следим за их обновлениями с первого дня. Если хотите проверить сайт или обновить PHP без простоя, свяжитесь с нами.
Источники
- Национальное управление кибербезопасности Саудовской Аравии (NCA): предупреждение о PHP № 2026-7949
- PHP: объявление о версиях 8.5.12, 8.4.27, 8.3.36 и 8.2.35 от 21 октября 2026 года
- PHP на GitHub: бюллетень CVE-2026-109618
- PHP на GitHub: бюллетень CVE-2026-109619
- PHP: таблица поддерживаемых версий
- Wiz Research: отчёт PHP2Shell
- Cloudflare: защита WAF от PHP2Shell
- Sansec: анализ PHP2Shell и затронутые платформы
Частые вопросы
Угрожает ли PHP2Shell сайту моей компании, если WordPress обновлён?
Да. Обе уязвимости находятся в самом языке PHP, а не в WordPress, и исследователи выполняли команды без входа в систему на WordPress в стандартной конфигурации. Защита: обновить PHP до 8.5.12, 8.4.27, 8.3.36 или 8.2.35 и затем перезапустить сервер.
Какие версии PHP исправляют PHP2Shell?
Версии 8.5.12, 8.4.27, 8.3.36 и 8.2.35, выпущенные 21 октября 2026 года. Версия 8.1 и более старые не поддерживаются и исправления не получат, поэтому их нужно перевести на поддерживаемую ветку.
Как узнать версию PHP моего сайта?
В панели хостинга, например cPanel или Plesk, в разделе «PHP Version», или у хостинг-провайдера и технической команды. Попросите их письменно подтвердить, что обновление от 21 октября применено и PHP перезапущен.
Мой сайт за Cloudflare. Этого достаточно?
Само по себе нет. Cloudflare развернула правила защиты на всех тарифах, включая бесплатный, но советует обновить и PHP, потому что атакующие постоянно меняют методы.
Следите за Origami в Google
Добавьте Origami в предпочтительные источники, и наши статьи будут показываться вам первыми в Google Поиске и главных новостях.








