PHP закрыл две RCE без логина: CVE-номера утекли за два дня до релиза

Запрос, который упирается в memory_limit в неудачный момент, может испортить память. Фатальная ошибка может оставить use-after-free, который подхватит следующий запрос на том же воркере. Оба случая ведут к удалённому выполнению кода.

Вкратце

Версии PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35 вышли 21 октября, на день раньше плана, из-за утечки CVE-номеров. Обе уязвимости получили CVSS 9.2, входа для эксплуатации не нужно, а видео с PoC по ошибке выложили в открытый доступ.

В треде администратор, который спешно обновлял несколько серверов, написал, что трёхстрочное правило nginx, блокирующее multipart-загрузки, тихо защищало машину, которую он не мог выключить.

Две ошибки, один балл и утёкший 10.0

Карточка PHP Foundation для релиза безопасности
Карточка PHP Foundation для релиза безопасности

Объявление PHP Foundation описывает две критические уязвимости, которые позволяют неаутентифицированному злоумышленнику выполнить код на сервере. CVE-2026-109618 — повреждение памяти, когда запрос упирается в memory_limit в неудачный момент. CVE-2026-109619 — устаревшее глобальное состояние: фатальная ошибка может оставить use-after-free, который задевает следующий запрос на том же воркере. Обе получили CVSS 9.2; утёкшая оценка 10.0 оказалась ошибочной.

С раскрытием всё пошло плохо. CVE-номера утекли за два дня до срока, из-за чего релиз сдвинули с 22 октября на 21-е, на 14:00 UTC. Видео с PoC от Calif опубликовали по ошибке, а Chainguard выложил исправленные образы больше чем за шесть часов до координированного релиза.

Что фонд обещает изменить

В мае 2026 года фонд создал команду по безопасности экосистемы и добавил в неё Фолькера Душа (AI Security Engineer in Residence), в июле — Александра Добуа, в сентябре — Даниэля Шерцера. Решения по безопасности перейдут к голосованию большинством, а руководство сможет подталкивать застрявшие исправления. С 1 июля команда опубликовала 15 CVE и разобрала больше 100 некорректных, повторных или невоспроизводимых отчётов. Фонд просит о спонсорстве компании, хостинг-провайдеров, дистрибутивы и правительства.

Тред: день патчей

«Трёхстрочный обходной путь nginx (блокировка multipart-загрузок), который я написал глубокой ночью по GMT, тихо защищал уязвимую машину, которую я не мог выключить» — администратор, весь день патчивший несколько серверов

День поднял и другой вопрос: как не пропустить следующий CVE? Один ответ был безрадостным.

«Не думаю, что существует надёжный способ.» — разработчик, который следит за HN, security-рассылками и сканерами кода

А тем, кто уже ушёл:

«Это только я или по-настоящему смелы те, кто решается выкатывать и защищать PHP-инстансы?» — разработчик, который в прошлом году ушёл с PHP и WordPress

Фонд показал полное RCE на Apache с mod_php, а первую ошибку на PHP-FPM подтвердил через пути в коде приложений. Прежде чем решать, как быстро патчить, проверьте, какой SAPI вы используете и какой код приложения до него доходит; блокировка multipart-загрузок выше — временная мера, а не исправление.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 5 из 9 Читать дальше
🚀Tech

DuckDB 2.0 получил серверный режим и асинхронный I/O, но файлы 2.0 старые версии не откроют

DuckDB 2.0.0 LTS, «Cinnamon Teal», — самый большой релиз проекта: около 20 000 коммитов с версии 1.5. Файл базы, который он записывает, не откроется ни в одной из предыдущих версий.

★ 367 · 💬 46 · duckdb.org · 2 мин