Утром мы писали, что команда PHP сегодня, 21 октября, в 14:00 UTC (17:00 по Москве) выпускает экстренное обновление против двух критических уязвимостей. За несколько часов до релиза ситуация ухудшилась: сведения об ошибках утекли, а в сети появились инструменты, которые, по словам авторов, позволяют их эксплуатировать.

Уязвимостям присвоены номера CVE-2026-109618 и CVE-2026-109619. Специалисты watchTowr подтвердили, что обе проблемы существуют, и смогли воспроизвести первую. По предварительным данным, речь идёт об удалённом выполнении кода без авторизации. Исследователь J4ck3LSyN выложил проект PHP-UP-2026 с прототипами для обеих ошибок, а по сети ходит видео инструмента PHP2Shell, который якобы запускает команды на WordPress, Magento, Joomla, Laravel, Drupal и других движках.

Что известно об ошибках

Судя по разборам, первая проблема связана с механизмом session.upload_progress, который отслеживает ход загрузки файлов через формы. При обновлении сессии PHP может обратиться к уже освобождённой памяти — классическая ошибка use-after-free. Механизм включён по умолчанию, так что под угрозой не только сайты, которые им явно пользуются. Вторая ошибка, возможно, связана с обработкой multipart/form-data — запросов с файлами.

Официального списка затронутых версий нет. Есть предположения, что проблема тянется с PHP 5.4. Поддерживаются сейчас только ветки 8.2–8.5, поэтому серверам на более старых версиях исправление от команды PHP не придёт. Независимой проверки универсальности опубликованных эксплойтов пока тоже нет.

Что сделать прямо сейчас

  • До выхода патча отключить session.upload_progress.enabled (значение Off) в php.ini и перезапустить PHP-FPM или Apache
  • Сделать свежую резервную копию сайта и базы
  • Договориться с хостингом или подрядчиком, кто и когда поставит обновление сегодня вечером
  • Если сайт на PHP 7.x или старше — планировать переход на поддерживаемую ветку, а не ждать патча
  • После обновления проверить версию на сервере, главную страницу, формы и оплату

Отключение upload_progress перекрывает предполагаемый путь атаки через загрузку файлов, но от второй ошибки может не защитить. Обновление WordPress, Magento или другой CMS эту проблему не решает: уязвим сам интерпретатор PHP.

Наш комментарий

Это ровно тот случай, когда закрытые детали до релиза не помогли: утечка дала атакующим фору. Сегодня тот день, когда обновление PHP стоит поставить в час выхода, а не на неделе. Исходный материал — на SecurityLab.