
Доказательство концепции (PoC) эксплойта для php2shell (CVE-2026-109618 / CVE-2026-109619), демонстрирующее удалённое выполнение кода в уязвимых средах PHP. Только для исследований в области безопасности и образовательных целей.
Критическое предупреждение (CVSS v4.0: 9.2 — критический уровень): 20 октября подробности двух уязвимостей удалённого выполнения кода (RCE) без аутентификации в ядре PHP утекли в сеть до согласованного раскрытия. Эксплуатация позволяет выполнять произвольные команды непосредственно с веб-сервера.
session-upload-progress-counters.patch)php2shell — это две критические уязвимости (CVE-2026-109618 и CVE-2026-109619), затрагивающие функциональность ядра PHP. Основной продемонстрированный вектор — использование памяти после освобождения (use-after-free, UAF) в куче в механизме прогресса загрузки сессии ядра PHP, приводящее к выполнению произвольного кода (zend_call_function / system()).
Обработчик прогресса загрузки PHP (php_session_rfc1867_callback в ext/session/session.c) хранит два необработанных указателя на бакеты zval * (post_bytes_processed и current_file_bytes_processed) непосредственно в активных структурах HashTable.
Во время обработки запроса:
POST активирует отслеживание прогресса со значениями конфигурации по умолчанию (session.upload_progress.enabled = 1).zend_hash_update() уничтожает предыдущее дерево данных с помощью деструктора zval_ptr_dtor, освобождая блок памяти.zend_fcall_info и zend_internal_function.zend_call_function(), что приводит к выполнению произвольной системной команды.php-src (включая версии 8.4.4 и 8.2.34).--syms) между zval_ptr_dtor и zend_call_function для адаптации к специфичным для дистрибутива раскладкам бинарных файлов (например, Debian Bookworm, Ubuntu Noble, Ubuntu Jammy).В следующей таблице приведены версии PHP, затронутые CVE-2026-109618 и CVE-2026-109619, а также их статус поддержки и патчей:
| Ветка PHP | Статус | Уязвимые версии | Исправленная / безопасная версия | Примечания |
|---|---|---|---|---|
| PHP 8.5 | Поддерживается (активная) | < 8.5.12 | 8.5.12 | Опубликован экстренный выпуск безопасности |
| PHP 8.4 | Поддерживается (активная) | < 8.4.27 | 8.4.27 | Опубликован экстренный выпуск безопасности |
| PHP 8.3 | Поддерживается (активная) | < 8.3.36 | 8.3.36 | Опубликован экстренный выпуск безопасности |
| PHP 8.2 | Поддерживается (только безопасность) | < 8.2.35 | 8.2.35 | Опубликован экстренный выпуск безопасности |
| PHP 8.1 | Снята с поддержки (EOL) | Все версии 8.1.x | Официального патча нет (EOL) | Установите session.upload_progress.enabled = Off или используйте ELS/бэкпорты дистрибутива |
| PHP 8.0 | Снята с поддержки (EOL) | Все версии 8.0.x | Официального патча нет (EOL) | Официальная поддержка прекращена; обязательна компенсация на уровне конфигурации |
| PHP 7.x | Снята с поддержки (EOL) | Все версии 7.0 - 7.4 | Официального патча нет (EOL) | Уязвима базовая логика ext/session; требуется срочная компенсация или обновление |
| PHP 5.x | Снята с поддержки (EOL) | 5.4.0+ (с отслеживанием прогресса RFC1867) | Официального патча нет (EOL) | Официальная поддержка прекращена; изолируйте хост или отключите отслеживание прогресса загрузки |
[!WARNING] PHP 8.1 и более старые версии, снятые с поддержки (EOL), не получают официальных патчей безопасности от PHP Foundation. Для таких сред немедленно примените
session.upload_progress.enabled = Offили пересоберите PHP из исходного кода с использованием предоставленного патча исходного кода на C.
Эксплуатация php2shell обычно проявляется в виде аномальных дочерних процессов, порождаемых непосредственно рабочими процессами PHP (php-fpm, php-cgi, php-cgi.exe, httpd, apache2).
Отслеживайте и настраивайте оповещения о выполнении рабочими процессами PHP следующих команд:
/bin/sh, /bin/bash, cmd.exe, powershell.exepython, perlcurl, wget, nc, certutil.exe/dev/tcp/, fsockopen, mkfifowhoami, id, uname -a, ipconfigДля веб-сред на базе Linux без агента обнаружения на конечных точках можно запустить в режиме наблюдения такие инструменты, как бесплатный process-watcher Флориана Рота, чтобы в реальном времени выявлять необычное порождение дочерних процессов.