CVE: CVE-2026-17545
Продукт: Ubuntu
Дата публикации: 26.09.2026
Критичность: MEDIUM
CVSS: 6.9 (4.0)
EPSS: 0,32%; процентиль 22,78%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В PHP на Windows файловые и потоковые API не отклоняют зарезервированные имена устройств, такие как CON, PRN, AUX, NUL, COM1–COM9, LPT1–LPT9, CONIN$ и CONOUT$, когда они входят в состав пути. Контролируемый нарушителем файл доходит до CreateFileW(), система открывает устройство вместо обычного файла, а запрос блокируется или зависает. Повторные обращения истощают пул рабочих процессов веб-сервера.
Основные характеристики
Уязвимость затрагивает PHP в Windows-окружении и приводит к отказу в обслуживании через зависание потоков при открытии системных устройств.
- Тип ошибки: CWE-67 — неправильная обработка имени устройства при открытии файла
- CVSS:
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X— оценка 6.9, средняя
- Условия атаки: удалённый доступ к PHP-приложению на Windows с возможностью управления именем файла в пути
- Факт эксплуатации: не подтверждён в предоставленных источниках
- EPSS: 0,32% (процентиль 22,78%) — вероятность эксплуатации в реальных атаках низкая
Какие продукты и версии затронуты
В Ubuntu затронуты пакеты PHP на нескольких дистрибутивах и версиях.
- Ubuntu:Pro:14.04:LTS —
php5версии5.5.9+dfsg-1ubuntu4.29+esm16, включаяlibapache2-mod-php5,libapache2-mod-php5filter,libphp5-embed,php-pear,php5,php5-cgi,php5-cli,php5-common,php5-curl,php5-enchant,php5-fpm,php5-gd
- Ubuntu:Pro:16.04:LTS —
php7.0версии7.0.33-0ubuntu0.16.04.16+esm20, включаяlibapache2-mod-php7.0,libphp7.0-embed,php7.0,php7.0-bcmath,php7.0-bz2,php7.0-cgi,php7.0-cli,php7.0-common,php7.0-curl,php7.0-dba,php7.0-enchant,php7.0-fpm
- Ubuntu:Pro:18.04:LTS —
php7.2версии7.2.24-0ubuntu0.18.04.17+esm12, включаяlibapache2-mod-php7.2,libphp7.2-embed,php7.2,php7.2-bcmath,php7.2-bz2,php7.2-cgi,php7.2-cli,php7.2-common,php7.2-curl,php7.2-dba,php7.2-enchant,php7.2-fpm
- Ubuntu:Pro:20.04:LTS —
php7.4версии7.4.3-4ubuntu2.29+esm3, включаяlibapache2-mod-php7.4,libphp7.4-embed,php7.4,php7.4-bcmath,php7.4-bz2,php7.4-cgi,php7.4-cli,php7.4-common,php7.4-curl,php7.4-dba,php7.4-enchant,php7.4-fpm
- Ubuntu:22.04:LTS —
php8.1версии8.1.2-1ubuntu2.26, включаяlibapache2-mod-php7.4,libapache2-mod-php8.0,libapache2-mod-php8.1,libphp8.1-embed,php8.1,php8.1-bcmath,php8.1-bz2,php8.1-cgi,php8.1-cli,php8.1-common,php8.1-curl,php8.1-dba
- Ubuntu:24.04:LTS —
php8.3версии8.3.6-0ubuntu0.24.04.11, включаяlibapache2-mod-php8.3,libphp8.3-embed,php8.3,php8.3-bcmath,php8.3-bz2,php8.3-cgi,php8.3-cli,php8.3-common,php8.3-curl,php8.3-dba,php8.3-enchant,php8.3-fpm
- Ubuntu:26.04:LTS —
php8.5версии8.5.4-0ubuntu1.3, включаяlibapache2-mod-php8.5,libphp8.5-embed,php8.5,php8.5-bcmath,php8.5-bz2,php8.5-cgi,php8.5-cli,php8.5-common,php8.5-curl,php8.5-dba,php8.5-enchant,php8.5-fpm
Причина уязвимости
PHP не отклоняет зарезервированные имена устройств Windows, такие как CON, PRN, AUX, NUL, COM1–COM9, LPT1–LPT9, CONIN$ и CONOUT$, когда они появляются как компонент пути.
Имя файла, контролируемое нарушителем, передаётся в CreateFileW() без проверки. Системный вызов открывает устройство вместо обычного файла, на который рассчитывало приложение.
Запрос блокируется или зависает, а рабочие процессы веб-сервера истощаются.
Как работает атака
Нарушитель направляет PHP-запрос с именем файла в пути, содержащим зарезервированное имя устройства Windows. Например, путь может включать CON, NUL или COM1.
PHP передаёт это имя в CreateFileW() без проверки на соответствие обычному файлу. Система открывает устройство вместо файла.
Открытие устройства блокирует поток выполнения PHP-процесса. При повторных запросах рабочие процессы истощаются, что приводит к отказу в обслуживании веб-приложения.
Условия успешной эксплуатации
Для успешной эксплуатации необходимы следующие условия:
- Удалённый доступ к PHP-приложению на Windows с возможностью управления именем файла в пути
- Возможность передачи имени устройства как компонента пути в запросе
- Работа PHP в окружении, где вызов CreateFileW() обрабатывает имя устройства без блокировки
Возможный сценарий атаки
Нарушитель отправляет HTTP-запрос к PHP-скрипту на Windows с параметром пути, содержащим CONIN$ или NUL.
PHP передаёт это имя в CreateFileW(). Система открывает устройство вместо файла. Запрос зависает, а рабочий процесс не освобождается.
Повторное отправка запросов приводит к истощению пула рабочих процессов веб-сервера и отказу в обслуживании.
Есть ли публичный эксплойт
В предоставленных источниках нет информации о публичном эксплойте для CVE-2026-17545.
Отсутствие сведений не означает отсутствие эксплойта. Техническое описание проблемы позволяет понять механизм атаки, но конкретные реализующие коды или payload в источниках не приведены.
Признаки эксплуатации
Специфичных индикаторов компрометации для CVE-2026-17545 в предоставленных источниках нет.
Неспецифичные точки контроля:
- Высокая загрузка CPU на веб-сервере во время обработки PHP-запросов
- Рост числа заблокированных рабочих процессов в Apache или Nginx
- Длинные времена отклика HTTP-запросов к PHP-приложениям
- Появление в логах запросов с необычными именами файлов в путях
Как обнаружить атаку
Для обнаружения атаки используйте следующие методы:
- Мониторинг CPU и памяти веб-сервера на предмет аномального роста нагрузки
- Анализ логов Apache/Nginx на наличие запросов с необычными именами файлов в путях
- Проверка количества заблокированных рабочих процессов PHP-FPM или mod_php
- Сравнение времени отклика HTTP-запросов до и после изменения конфигурации
Как проверить свою версию
Для проверки версии Ubuntu и пакетов PHP используйте следующие команды:
Bash:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status
Замените
<имя-пакета> на конкретное имя пакета PHP, например php8.3 или php7.4. Команда apt-cache policy покажет установленную версию и доступные обновления.Команда
ubuntu-security-status перечислит пакеты с известными уязвимостями и статус их исправления.Исправление
Исправление CVE-2026-17545 доступно в обновлённых версиях пакетов PHP для Ubuntu.
Обновите систему:
Bash:
sudo apt update
sudo apt upgrade
Для проверки статуса исправления используйте:
Bash:
ubuntu-security-status
apt-cache policy <имя-пакета>
Замените
<имя-пакета> на конкретное имя пакета PHP. Убедитесь, что установленная версия соответствует исправленной версии из Ubuntu OSV.Временные меры защиты
Пока обновление не применено, используйте следующие временные меры:
- Ограничение доступа к PHP-приложениям с возможностью управления путями файлов
- Фильтрация запросов на уровне веб-сервера для блокировки путей с зарезервированными именами устройств
- Уменьшение пула рабочих процессов PHP-FPM или mod_php для снижения влияния истощения ресурсов
- Мониторинг нагрузки и готовность к ограничению трафика при аномальной загрузке
Как проверить устранение уязвимости
После обновления проверьте исправление:
Bash:
ubuntu-security-status
apt-cache policy <имя-пакета>
Замените
<имя-пакета> на конкретное имя пакета PHP. Убедитесь, что статус пакета показывает отсутствие известных уязвимостей.Проведите тестирование приложения для подтверждения отсутствия блокировки запросов при передаче путей с обычными именами файлов.
Вывод
CVE-2026-17545 требует обновления пакетов PHP в Ubuntu. Проблема связана с отсутствием проверки зарезервированных имён устройств Windows в путях, что приводит к истощению рабочих процессов.
Обновление до исправленных версий устраняет уязвимость. До применения обновления используйте временные меры по ограничению доступа и мониторингу нагрузки.
Официальные источники
История обновлений статьи
- 30.09.2026 — Опубликована первая версия материала.
