CVE-2024-9465: SQL Injection sin autenticación en Palo Alto Expedition — CVSS 9.2

Un atacante externo sin credenciales puede extraer hashes de contraseñas, API keys y configuraciones completas de tus dispositivos PAN-OS. Está en el catálogo CISA KEV. Aquí está lo que tienes que hacer.

Cuando una vulnerabilidad llega al catálogo de CISA KEV (Known Exploited Vulnerabilities), deja de ser una nota de seguridad y se convierte en una prioridad operativa. CVE-2024-9465 es exactamente ese caso: un SQL Injection en Palo Alto Networks Expedition que no requiere ninguna credencial para ser explotado y que expone todo lo que no quieres que nadie vea — hashes de passwords, configuraciones de firewall y API keys de tus dispositivos PAN-OS.

Si usas Expedition para migrar o gestionar configuraciones de firewall Palo Alto, lee esto antes de hacer cualquier otra cosa hoy.

¿Qué es Palo Alto Networks Expedition?

Expedition es una herramienta de migración y optimización de configuraciones que usan los administradores de Palo Alto Networks para:

Por su naturaleza, Expedition tiene acceso a configuraciones completas de firewall, credenciales y API keys. Eso es exactamente lo que hace esta vulnerabilidad tan severa.

Detalles técnicos de la vulnerabilidad

La vulnerabilidad está clasificada como CWE-89 (SQL Injection), y afecta a las versiones 1.2.0 hasta 1.2.95 de Expedition. El vector de ataque es completamente externo y no requiere autenticación previa.

⚠️ Vector de ataque
CVSS v4.0: 9.2 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:H/SI:N/SA:N

CVSS v3.1: 9.1 CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Network · Low Complexity · No Privileges Required · No User Interaction

Un atacante que tenga acceso de red a la interfaz web de Expedition puede inyectar sentencias SQL maliciosas y obtener:

💡 Por qué importan las API keys
Las API keys de PAN-OS permiten ejecutar comandos de gestión en los firewalls vía REST API sin usuario ni contraseña. Si un atacante obtiene una API key de producción, tiene control administrativo sobre tu firewall — sin necesitar comprometer ninguna cuenta de usuario.

Versiones afectadas y fix disponible

AFECTADAS:  Palo Alto Networks Expedition 1.2.0 — 1.2.95
PARCHEADA:  Palo Alto Networks Expedition 1.2.96 y superior

Publicado:  10 septiembre 2024
CISA KEV:   Fecha límite de remediación: 28 octubre 2024
✅ Acción inmediata
Actualiza a Expedition 1.2.96 o superior. Si no puedes parchear de inmediato, aplica las mitigaciones de red descritas abajo.

Cómo verificar tu versión de Expedition

Desde la interfaz web de Expedition, navega a Help → About para ver la versión instalada. También puedes verificarlo desde el servidor:

# Verificar versión de Expedition (desde el servidor donde está instalado)
cat /var/www/html/Expedition/version.txt

# O consultar directamente el servicio
curl -sk https://localhost/Expedition/index.php | grep -i version

Recomendaciones técnicas de mitigación

1. Parchar de inmediato (prioridad absoluta)

Descarga Expedition 1.2.96+ desde el Customer Support Portal de Palo Alto Networks y aplica la actualización. El proceso de upgrade preserva las configuraciones existentes.

# Antes del upgrade: hacer backup de la BD de Expedition
mysqldump -u root -p expedition > expedition_backup_$(date +%Y%m%d).sql

# Verificar integridad del backup
gzip expedition_backup_$(date +%Y%m%d).sql

2. Aislar la interfaz de Expedition a nivel de red

Expedition nunca debe ser accesible desde Internet. Si lo está, es tu problema número uno ahora mismo, antes incluso del parche.

# Regla de ejemplo en iptables para restringir acceso solo a IPs de administración
# Reemplaza 10.10.10.0/24 con tu rango de gestión real

iptables -A INPUT -p tcp --dport 443 -s 10.10.10.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
iptables -A INPUT -p tcp --dport 80 -j DROP

# Guardar reglas
iptables-save > /etc/iptables/rules.v4
⚠️ Restricción de red — regla de oro
Expedition debe ser accesible únicamente desde la red de gestión dedicada. Si no tienes una red de gestión separada, usa al menos una ACL que limite el acceso a las IPs de los administradores de red.

3. Rotar todas las credenciales y API keys expuestas

Si Expedition estuvo expuesto a redes no confiables, asume compromiso. Rota lo siguiente:

# Regenerar API key de un dispositivo PAN-OS vía CLI (ejecutar en el firewall)
# Primero identifica qué usuarios tienen API keys generadas
show admins

# Regenerar API key para un usuario específico (requiere reinicio de sesión)
# Desde la GUI: Device > Administrators > [usuario] > Generate API Key

# Via API: generar nueva key para el usuario admin
curl -k -X GET "https://<FIREWALL-IP>/api/?type=keygen&user=admin&password=<NEW-PASSWORD>"

4. Revisar logs de acceso en busca de explotación

Busca patrones de SQL injection en los logs del servidor web de Expedition:

# Revisar logs de Apache/Nginx en busca de payloads SQLi comunes
grep -iE "(union|select|insert|drop|--\s|1=1|or\s1|benchmark|sleep\()" \
  /var/log/apache2/access.log | tail -100

# Revisar IPs que hicieron requests anómalos al endpoint vulnerable
# (el endpoint reportado en el PoC público de Horizon3)
grep -i "/Expedition/" /var/log/apache2/access.log | \
  awk '{print $1}' | sort | uniq -c | sort -rn | head -20

# Verificar si hay archivos creados recientemente en directorios web
find /var/www/html/Expedition/ -newer /var/www/html/Expedition/index.php \
  -type f -ls 2>/dev/null

5. Monitoreo con reglas de detección (SIEM)

Si tienes un SIEM o stack de logging centralizado, agrega detección para actividad post-explotación:

# Sigma rule (simplificada) para detección de SQLi en Expedition
title: Possible CVE-2024-9465 Exploitation Attempt
status: experimental
logsource:
  product: webserver
detection:
  keywords:
    - 'UNION SELECT'
    - 'information_schema'
    - '1=1--'
    - 'SLEEP('
    - 'BENCHMARK('
  url_contains: '/Expedition/'
  condition: keywords and url_contains
falsepositives:
  - Security scanners authorized
level: high

6. Validar la configuración de los firewalls gestionados

Si sospechas que las API keys fueron comprometidas, revisa los logs de auditoría de tus firewalls PAN-OS para detectar cambios no autorizados:

# Revisar log de configuración en PAN-OS (via CLI en el firewall)
show config audit last 100

# Ver cambios de configuración recientes con timestamp y usuario
show log config direction equal forward | match "admin\|api"

# Exportar log de auditoría completo para análisis
scp admin@<FIREWALL-IP>:/var/log/pan/configcmd.log ./audit_$(date +%Y%m%d).log

Indicadores de compromiso (IOCs)

Horizon3.ai publicó un PoC funcional para esta vulnerabilidad. Estos son los patrones a buscar en tus logs:

# User-Agents asociados a herramientas de explotación automatizada
python-requests/
curl/
Go-http-client/

# Parámetros HTTP sospechosos en requests a Expedition
?projectId=1 UNION SELECT
?type=&query=SELECT+*+FROM
?id=1; DROP TABLE

# Archivos webshell comunes que el exploit puede depositar
/var/www/html/Expedition/*.php  (archivos recién creados)
/tmp/*.php
💡 Referencia técnica
El análisis completo de Horizon3.ai documenta la cadena de explotación desde el SQL injection hasta el compromiso completo del sistema. La referencia oficial del vendor está en el advisory PAN-SA-2024-0010.

Checklist de respuesta rápida

[ ] 1. Verificar versión de Expedition instalada
[ ] 2. Si versión < 1.2.96 → aislar de red inmediatamente
[ ] 3. Revisar logs de acceso por actividad sospechosa
[ ] 4. Aplicar parche a Expedition 1.2.96+
[ ] 5. Rotar API keys de todos los dispositivos PAN-OS en Expedition
[ ] 6. Rotar credenciales de usuarios de Expedition
[ ] 7. Revisar logs de auditoría de configuración en firewalls
[ ] 8. Confirmar que Expedition solo es accesible desde red de gestión
[ ] 9. Agregar regla de detección en SIEM
[ ] 10. Documentar hallazgos y acciones tomadas

Conclusión

CVE-2024-9465 es un recordatorio de algo que veo con frecuencia en entornos de producción en LATAM: las herramientas de gestión y migración quedan expuestas en red después de un proyecto de implementación y nadie las revisa. Expedition no es una herramienta de producción permanente — es una herramienta de trabajo que debería vivir en una red de gestión aislada o directamente apagada cuando no se usa.

Si gestionas infraestructura Palo Alto y usas Expedition, este CVE es una deuda técnica que ya venció. El parche existe desde septiembre 2024. La pregunta no es si parchear — es si alguien ya lo explotó antes de que llegaras a este post.

⚠️ Recuerda
CISA incluyó esta vulnerabilidad en su catálogo KEV porque hay evidencia de explotación activa en la naturaleza. No es un escenario teórico.