Reports
CRÍTICA[RCE]#2468496

CVE-2024-3400: inyección de comandos sin autenticar en GlobalProtect de PAN-OS

Un fallo en la función GlobalProtect de PAN-OS permitía a un atacante sin autenticar ejecutar comandos del sistema como root en el cortafuegos. El investigador 0xr2r lo reportó al programa del Departamento de Defensa de EE. UU.

Resumen
Resumen en castellano de un reporte público, no una traducción literal. El código y los comandos se mantienen como en el original.

Resumen

El reporte describe CVE-2024-3400, una vulnerabilidad de inyección de comandos del sistema operativo en la función GlobalProtect del software PAN-OS de Palo Alto Networks. En determinadas versiones de PAN-OS y con ciertas configuraciones de esa función, un atacante sin autenticar podía ejecutar código arbitrario con privilegios de root directamente sobre el cortafuegos.

Según el propio reporte, no se ven afectados Cloud NGFW, los equipos Panorama ni Prisma Access: el problema se limita a los cortafuegos con GlobalProtect en la configuración vulnerable.

El fallo se comunicó al programa de bug bounty del Departamento de Defensa de EE. UU. (deptofdefense), clasificado como OS Command Injection y con severidad crítica.

Pasos de reproducción

El investigador documenta una prueba de concepto muy directa: enviar una petición HTTP concreta contra el servicio de GlobalProtect del cortafuegos para forzar la ejecución de un comando como root. En el texto publicado en HackerOne, la petición de explotación y el host afectado aparecen censurados por el propio reporte, así que aquí se describe el procedimiento sin reproducir el payload literal.

  1. Enviar la petición HTTP de explotación al cortafuegos vulnerable. Como demostración inofensiva, el comando inyectado crea un fichero en el servidor:

`` hellome1337.txt ``

El fichero se escribe en el servidor con acceso de root, lo que confirma que el comando inyectado se ejecuta con los máximos privilegios.

  1. Comprobar que el fichero se ha creado. Para verificarlo sin ejecutar nada más, el investigador se apoya en el código de respuesta del servidor: al intentar acceder a esa ruta recién creada, el servidor responde 403 (Forbidden) en lugar de 404 (Not Found). El cambio de 404 a 403 indica que el fichero existe realmente en el sistema de archivos, es decir, que la inyección funcionó.

Para el detalle técnico interno del fallo —cómo PAN-OS procesaba el valor que permite la inyección—, el reporte no lo expone en su cuerpo y remite a análisis externos de watchTowr, Rapid7/AttackerKB y a la ficha de NVD.

Impacto

Ejecución remota de código sin autenticación previa y con privilegios de root sobre el cortafuegos. Es el peor escenario posible para un dispositivo perimetral: quien explota el fallo obtiene control total del equipo que se supone que protege la red, pudiendo interceptar o desviar tráfico, pivotar hacia la red interna o desactivar las propias defensas. De ahí la severidad crítica.

Qué aprender de este caso

  • En dispositivos perimetrales (VPN, cortafuegos, pasarelas), revisa cualquier punto donde un valor controlado por el cliente —cookies, cabeceras, nombres de sesión— acabe formando parte de una ruta de fichero o de un comando del sistema: ahí es donde suelen aparecer las inyecciones de comandos que escalan directamente a root.
  • Una técnica de detección útil que usa este reporte: distinguir 403 frente a 404 para confirmar, sin ejecutar nada destructivo, que un fichero se ha creado en el servidor. Sirve como oráculo para validar explotaciones a ciegas.
  • Para quien defiende: los servicios que corren como root deberían construir rutas y comandos a partir de valores de entrada mediante listas de permitidos o llamadas que no pasen por un intérprete de shell, nunca concatenando directamente datos del cliente.