🔬 ТЕСТОВАЯ ЛАБОРАТОРИЯ PHP2Shell

Среда: PHP 5.6.40 | Apache mod_php

Memory Limit: 16M

session.upload_progress.enabled: ВЫКЛЮЧЕНО (БЕЗОПАСНО)

⚠️ CVE-2026-109618 — "rawkey" (OOM-коррупция HashTable)

Механизм: Отправляем огромный POST-запрос с тысячами полей. PHP пытается создать гигантский HashTable (словарь) для этих данных. Память заканчивается (OOM) посередине создания словаря. Словарь остается полуразрушенным. При уборке памяти (PHP_RSHUTDOWN_FUNCTION) PHP обращается к мусору как к коду.

▶️ Запустить OOM-тест (замедленное время) 💀 Запустить PoC-эксплойт

Безопасный тест: мы вызовем OOM и увидим corrupted state без реального выполнения кода

⚠️ CVE-2026-109619 — "php2shell" (Use-After-Free)

Механизм: Отправляем крошечный запрос (~450 байт) с особым заголовком. PHP запускает session.upload_progress (слежение за загрузкой). Создается глобальный указатель на данные запроса. Запрос завершается с ошибкой, но указатель НЕ освобождается. Следующий запрос обращается к уже очищенной памяти (Use-After-Free).

▶️ Шаг 1: Создать UAF-состояние ▶️ Шаг 2: Использовать stale-указатель

Два запроса подряд демонстрируют утечку состояния между воркерами

🛡 Проверка защиты

После применения патча эти тесты должны показать SAFE вместо VULNERABLE

🔍 Проверить состояние системы