При отправке специально сформированного запроса multipart/form-data (в связке с mod_php...
При отправке специально сформированного запроса multipart/form-data (в связке с mod_php ещё до запуска кода самого сайта, а в PHP-FPM после старта запроса при обращении приложения к функциям session_start() или unserialize()) фатальная ошибка нехватки памяти (OOM) прерывает выполнение нативного кода PHP с частично инициализированными структурами, после чего процедура завершения запроса освобождает память, на которую продолжают ссылаться висячие указатели. Следующий запрос к тому же рабочему процессу обращается к уже освобождённой области памяти по механизму Use-After-Free, и, как подчёркивают эксперты «Лаборатории Касперского» на портале 🤘Securelist, из-за расположения ошибок непосредственно в ядре PHP устранить их средствами прикладного кода невозможно. ❗️ Первая уязвимость CVE-2026-109618, связанная в бюллетене Laravel News с повреждением частично инициализированных данных при нехватке памяти (OOM), а в разборе Sansec с ошибкой Use-After-Free в десериализаторе прогресса загрузки session.upload_progress, не только открывает путь к удалённому выполнению кода от имени процесса PHP (причём в конфигурации с mod_php ещё до запуска логики веб-приложения), но и позволяет сама по себе по аналогии с Heartbleed извлекать из освобождённой кучи пароли, ключи API, сессионные токены и закрытые ключи TLS других запросов внутри возвращаемого клиенту cookie-файла PHPSESSID даже без вызова функции session_start(). ❗️ Вторая уязвимость CVE-2026-109619 сохраняет устаревшее глобальное состояние после освобождения памяти запроса (включая Use-After-Free при формировании трассировки стека фатальной ошибки и путаницу типов в OPcache), а объединяющий оба дефекта в единую цепочку эксплойт PHP2Shell, по подтверждённым в отчёте Sansec результатам тестов компании Calif, обеспечил выполнение кода без аутентификации на серверах с WordPress 7.1.2, Magento 2.4.9, Drupal 11.4.3, Joomla 6.1.4, MediaWiki 1.46.2, Laravel 13.11, Symfony 8.1, Nextcloud 35.0.1, Roundcube 1.7.4, phpMyAdmin 5.2.3 и WHMCS. Первую удалённую уязвимость в механизме лимита памяти PHP Стефан Эссер обнаружил ещё в 2004 году и решил тогда не публиковать эксплойт, а в 2020 и 2024 годах смежные ошибки исчерпания памяти при обработке multipart/form-data фиксировались в баг-репорте PHP #78876 и в аудите OSTIF и Quarkslab, однако их практическую эксплуатацию доказать не удавалось, поэтому базовый дефект оставался нетронутым более десяти лет. Перелом наступил в августе 2026 года, когда Райан Остин из компании Calif при поддержке OpenAI и команда Wiz Research независимо друг от друга применили передовые ИИ-модели для адаптации эксплойтов под разметку памяти разных версий PHP, причём в Wiz задачу, требовавшую прежде месяцев работы профильной команды, один специалист решил примерно за неделю, а руководитель направления аналитики угроз (threat intelligence) watchTowr Джейк Нотт сообщил, что злоумышленники уже пытаются атаковать серверы в дикой природе с помощью сгенерированных ИИ проверочных инструментов (PoC), хотя успешных взломов на тот момент ещё не зафиксировали.