Очередная супер-пупер уязвимость угрожает всему миру
Ещё в группе «Общее»
- Out-of-bounds write in ntfs!PageUpdateAnalysis
В функции ntfs!PageUpdateAnalysis драйвера NTFS в Microsoft Windows существует уязвимость типа переполнения буфера в куче. Специально…
- Мы помогли Apple устранить уязвимость в ядре ее операционных систем
Мы помогли Apple устранить уязвимость в ядре ее операционных систем Эксперт PT ESC Михаил Ложников обнаружил…
- Ваш сервер Zimbra под угрозой
Недавно наша команда PT ESC IR столкнулась с новой атакой ransomware-группировок на почтовые серверы Zimbra с…
- VMkatz: скрытая угроза для виртуальной инфраструктуры 🫣
В 2026 году был опубликован инструмент VMkatz. По функционалу он напоминает широко известный инструмент Mimikatz, но,…
- ⚠️ Включил отладку по Wi-Fi — получил Mamont
⚠️ Включил отладку по Wi-Fi — получил Mamont В начале мая на устройствах Android была обнаружена…
21 октября были раскрыты две критические уязвимости PHP — CVE-2026-109618 и CVE-2026-109619, обе с CVSS 9.2. Их эксплуатация позволяет выполнять код без аутентификации с правами веб-сервера.
Уязвимым можно считать PHP с версии 5.4. Что интересно, уязвимости были найдены с помощью ИИшек (Gemini 4 Argon + GPT-5.6 Sol), а размер патча составляет больше 10 тысяч строк кода.

В чем уязвимость
Основная цель атакующего — вызвать фатальную ошибку, например Out-of-memory (OOM), в нужный момент при обработке PHP-интерпретатором входящего веб-запроса.
CVE связаны с тем, что PHP может ошибочно считать новый массив данных, который еще не успел проинициализироваться из-за ошибки OOM, проинициализированным. Это означает, что атакующий, заспамив память PHP специально подготовленными запросами, может добиться освобождения и выделения одного и того же участка памяти для разных массивов.
Как итог — у массива данных из-за ошибки OOM не успели проинициализироваться поля и указатели, в которых оказались данные из предыдущих запросов, управляемые злоумышленником. А при очистке памяти после ошибки PHP вызовет функции очистки массивов по адресам, управляемым злоумышленником. Именно поэтому эксплуатация этих двух уязвимостей требует серьёзной подготовки и объёмных HTTP-запросов.
Важно: из-за механизма рандомизации адресов ASLR атакующему необходимо добиться утечки памяти, чтобы узнать адрес функции, например,
system().
Как именно происходит эксплуатация
Поскольку источник уязвимости находится глубоко и связан с механизмами освобождения и выделения памяти в PHP, способов ее эксплуатации несколько.
1. Формы x-www-form-urlencoded
Объем выделяемой памяти в процессе PHP здесь достигается за счет большой глубины вложенности параметров формы (...[x]). PHP учитывает новый элемент массива еще до его заполнения, а копирование длинного имени при обработке HTTP-запроса может превысить memory_limit, вызывая out-of-memory.
При очистке массива PHP принимает подложенные байты за готовый элемент. Разместив поддельный массив в нужной области памяти и подставив в него адрес функции, атакующий может заставить PHP вызвать ее при очистке.
2. Отслеживание загрузки файлов
При multipart-загрузке с включенным при помощи параметра PHP_SESSION_UPLOAD_PROGRESS отслеживанием прогресса загрузки PHP записывает статус загрузки в сессию — хранилище данных посетителя между запросами. Множество пустых файловых полей с вложенными именами также вызывают выделение огромного объёма памяти и ошибку OOM.
После OOM память может освободиться, а указатель на неё — сохраниться. Следующий запрос через upload progress может обратиться к ней повторно — это use-after-free (UAF). Если запрос попал в тот же процесс, переживший сбой, память уже может содержать данные атакующего.
Важно: поскольку злоумышленник может влиять непосредственно на структуру данных PHP-сессии, в одном из запросов ему удается вызвать утечку памяти PHP через заголовок
Set-Cookie: PHPSESSID=, что позволяет довести эксплуатацию до выполнения команд.
3. Отчет о сбое в PHP 8.5.
При включенном флаге fatal_error_backtraces (включен по умолчанию) PHP сохраняет список функций, выполнявшихся в момент фатальной ошибки. После завершения запроса память списка освобождается, но указатель остается. Сообщение об ошибке в начале следующего запроса заставляет PHP обратиться к нему снова, вызывая еще один use-after-free.
Новые репорты и PoC для этих уязвимостей появляются каждый день, из-за чего создавать детекты их эксплуатации становится еще сложнее. Однако для успешной эксплуатации и выполнения вредоносного кода злоумышленнику необходимо узнать точные адреса функций (например, system).
Полный эксплойт, выполняющий вредоносный код, пока известен только для способа с параметром PHP_SESSION_UPLOAD_PROGRESS.

Сетевые артефакты
У пока еще единственной известной полноценной цепочки атаки присутствует очевидный артефакт — параметр PHP_SESSION_UPLOAD_PROGRESS в теле запроса. Об успешной эксплуатации может свидетельствовать необычно длинное значение PHPSESSID в ответе с URL-кодированными байтами памяти.
Несмотря на то что сам параметр PHP_SESSION_UPLOAD_PROGRESS может использоваться и при обычных запросах, на практике этот параметр в сетевых запросах мы не встречали.
Важно: единого обязательного сетевого маркера для всех вариантов эксплуатации нет.
Что известно об атаках
Специалисты Amazon зафиксировали попытки атак еще 17 октября. После раскрытия уязвимостей число попыток атак в сети Cloudflare выросло до миллионов, по словам главы компании.
Как исправить
Обновить PHP до 8.2.35, 8.3.36, 8.4.27, 8.5.12 или более новой исправленной версии своей ветки.
До обновления снизить риск помогут следующие настройки PHP:
session.upload_progress.enabled=0— перекрывает известные цепочки через upload progress;fatal_error_backtraces=0— перекрывает соответствующий путь на PHP 8.5;- ограничения размера и сложности запросов на веб-сервере или reverse proxy.
Настройки должны действовать до разбора запроса: задайте их в php.ini или конфигурации сервера.
Для CVE-2026-109618 разработчики PHP также предлагают установить memory_limit=-1 с внешними ограничениями памяти на уровне контейнера/cgroup. Это частичная мера: системный отказ выделения памяти все еще может привести к уязвимому пути.
Полностью исправляет обе уязвимости только обновление PHP.
Suricata-сигнатуры
alert http any any -> any any (msg: "ATTACK [PTsecurity] Possible PHP RCE Exploitation attempt. PHP upload progress in multipart request (PHP2Shell, CVE-2026-109618, CVE-2026-109619)"; flow: established, to_server; http.content_type; content: "multipart/form-data"; startswith; nocase; http.request_body; content: "PHP_SESSION_UPLOAD_PROGRESS"; threshold: type limit, track by_src, count 1, seconds 300; reference: cve, 2026-109618; reference: cve, 2026-109619; reference: url, wiz.io/blog/php2shell-php-rce; classtype: attempted-admin; sid: 10018633; rev: 1;)
alert http any any -> any any (msg: "ATTACK [PTsecurity] Successful PHP RCE Exploitation. PHPSESSID memory leak (PHP2Shell, CVE-2026-109619)"; flow: established, to_client; http.header.raw; content: "Set-Cookie|3a|"; nocase; content: "PHPSESSID="; nocase; distance: 0; content: "%"; distance: 0; pcre: "/Set-Cookie\x3a[\x20\x09]*PHPSESSID\x3d(?:[^\x3b\x25\r\n\x20\x09]{0,64}\x25(?:[0189a-f][0-9a-f]|7f)){12}/im"; threshold: type limit, track by_dst, count 1, seconds 300; reference: cve, 2026-109619; reference: url, wiz.io/blog/php2shell-php-rce; classtype: successful-admin; sid: 10018632; rev: 3;)
#cve #php
Ещё в группе «Общее»
- Out-of-bounds write in ntfs!PageUpdateAnalysis
В функции ntfs!PageUpdateAnalysis драйвера NTFS в Microsoft Windows существует уязвимость типа переполнения буфера в куче. Специально…
- Мы помогли Apple устранить уязвимость в ядре ее операционных систем
Мы помогли Apple устранить уязвимость в ядре ее операционных систем Эксперт PT ESC Михаил Ложников обнаружил…
- Ваш сервер Zimbra под угрозой
Недавно наша команда PT ESC IR столкнулась с новой атакой ransomware-группировок на почтовые серверы Zimbra с…
- VMkatz: скрытая угроза для виртуальной инфраструктуры 🫣
В 2026 году был опубликован инструмент VMkatz. По функционалу он напоминает широко известный инструмент Mimikatz, но,…
- ⚠️ Включил отладку по Wi-Fi — получил Mamont
⚠️ Включил отладку по Wi-Fi — получил Mamont В начале мая на устройствах Android была обнаружена…






