Две уязвимости в ядре PHP затрагивают механизм, который отслеживает ход загрузки файлов через веб-формы. Ошибка работы с памятью позволяет удалённому злоумышленнику выполнить собственный код на сервере. Хватает одного специально собранного POST-запроса, аутентификация не требуется и действий пользователя тоже. Банк данных угроз безопасности информации (BDU) оценивает уровень опасности как критический: 9,8 по CVSS 3.1 и 9,2 по CVSS 4.0. Уязвимостям присвоены идентификаторы BDU:2026-17191 и BDU:2026-17192. Под удар попадают сам интерпретатор PHP и продукты Palo Alto Networks: межсетевые экраны PAN-OS пяти веток и система управления Panorama.
CVE-2026-109618 и CVE-2026-109619 в PHP и PAN-OS
Компонент session.upload_progress существует ради наглядности. Он собирает промежуточные сведения о запросе, чтобы сайт мог показать полосу прогресса при отправке большого файла. Обе уязвимости относятся к классу "использование памяти после освобождения": программа отдаёт участок памяти, а затем снова к нему обращается. В промежутке между этими двумя действиями злоумышленник успевает записать туда свои данные. Дальше интерпретатор обрабатывает их как собственный код.
Различие между двумя CVE лежит в конкретном пути возникновения сбоя. В первом случае цепочка разворачивается через механизм длинных переходов внутри интерпретатора, во втором срабатывает общая логика работы с памятью в том же компоненте. Отдельные бюллетени описывают и разные обходные меры, поэтому администраторам имеет смысл смотреть оба.
Кроме выполнения кода, BDU фиксирует исчерпание ресурсов и манипулирование структурами данных. Проще говоря, тот же запрос способен уронить рабочий процесс или надолго занять память сервера. Для сервиса, принимающего файлы от внешних пользователей, это прямой путь к отказу в обслуживании.
Кого затрагивают уязвимости
Уязвимы PHP до версии 8.2.35, ветка 8.3 от 8.3.0 до 8.3.36, ветка 8.4 от 8.4.0 до 8.4.27 и ветка 8.5 от 8.5.0 до 8.5.12. В списке затронутых продуктов также PAN-OS версий 10.2, 11.1, 11.2, 12.1, 12.2 и Panorama. PHP входит в состав этих систем, поэтому Palo Alto Networks выпустила собственное уведомление по тем же идентификаторам.
Эксплойт уже в открытом доступе. Исследователи из Sansec описали цепочку под названием php2shell, а публичные реализации, судя по сопроводительным материалам, обходят рандомизацию адресного пространства. Этот защитный механизм перемешивает адреса в памяти и мешает злоумышленнику угадать, куда именно писать. Обход снимает главное препятствие, которое раньше удерживало подобные атаки на стадии эксперимента.
Для устройств, чей интерфейс управления открыт из интернета, риск особенно высок. Межсетевой экран стоит на периметре, и компрометация такой системы бьёт по всей внутренней сети, а не по одному сервису. Именно поэтому Palo Alto Networks выделила проблему отдельным бюллетенем, хотя корневая ошибка находится в PHP.
Обновления и обходные меры
Разработчики PHP закрыли обе уязвимости в версиях 8.2.35, 8.3.36, 8.4.27 и 8.5.12. Администраторам веб-серверов достаточно перейти на любую из них. Владельцам PAN-OS и Panorama предстоит сверяться с бюллетенем вендора: конкретные номера исправленных сборок в исходных данных не приводятся.
Если обновление откладывается, отслеживание прогресса загрузки отключают в конфигурации PHP. Размер POST-запроса и загружаемого файла ограничивают явными значениями, а число частей и заголовков в составных запросах урезают на уровне веб-сервера. Память процесса держат в жёстких рамках через cgroups (механизм ограничения ресурсов в Linux) или контейнеры. Для PHP-FPM снижает риск перезапуск рабочего процесса после каждого запроса, хотя производительность от этого падает. Дополнительно закрывают доступ из внешних сетей, фильтруют трафик через WAF и отслеживают попытки эксплуатации системами обнаружения вторжений.
Тяжесть ситуации определяется сочетанием трёх факторов: удалённая эксплуатация без учётных данных, максимальные оценки по конфиденциальности, целостности и доступности, а также готовый рабочий эксплойт. Обычно между публикацией технических деталей и первыми попытками атак проходят недели. Здесь этот интервал уже пройден. Компонент, затронутый ошибкой, редко выносят на периметр осознанно, но именно так он и оказывается в PAN-OS и Panorama.
Ссылки
- https://bdu.fstec.ru/vul/2026-17191
- https://bdu.fstec.ru/vul/2026-17192
- https://www.cve.org/CVERecord?id=CVE-2026-109618
- https://www.cve.org/CVERecord?id=CVE-2026-109619
- https://sansec.io/research/php2shell
- https://cert.europa.eu/publications/security-advisories/2026-018
- https://www.php.net/archive/2026.php#2026-10-20-1
- https://www.linux.org.ru/news/security/18405491
- https://github.com/php/php-src/releases#release-php-8.2.35
- https://github.com/php/php-src/releases#release-php-8.3.36
- https://github.com/php/php-src/releases#release-php-8.4.27
- https://github.com/php/php-src/releases#release-php-8.5.12
- https://security.paloaltonetworks.com/CVE-2026-109618
- https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w
- https://github.com/9bie/php2shell-bypass-aslr-exp
- https://github.com/xuehuolll/php2shell-CVE-2026-109618-109619/tree/63618bd7629dbfc2d5b505e9dd74e321d8345351
- https://security.paloaltonetworks.com/CVE-2026-109619
- https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp