Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-72898-metabase-sqli — Детектор + анализ первопричины для CVE-2026-72898 (неаутентифицированная SQLi в Metabase через reset_password) | Kitploit
Инструменты/GitHubGitHub/d-maggipinto/cve-2026-72898-metabase-sqli
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияВеб-безопасностьТестирование на Проникновение
GitHubd-maggipinto/cve-2026-72898-metabase-sqli

CVE-2026-72898-metabase-sqli

Детектор + анализ первопричины для CVE-2026-72898 (неаутентифицированная SQLi в Metabase через reset_password)

Репозиторий
17 ч 49 мин назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-72898 — Неаутентифицированная SQL-инъекция в Metabase (детектор + анализ)

CVE CVSS CISA KEV Product Type Auth License

Неаутентифицированная SQL-инъекция в Metabase через POST /api/session/reset_password. CVSS 10.0, находится в каталоге CISA KEV, эксплуатируется в реальных атаках.

Необъявленное поле в теле запроса на сброс пароля попадает в поиск пользователя в базе данных приложения как структура HoneySQL, а не как проверенный идентификатор. Ключ JSON-объекта становится ключевым словом Clojure, поэтому {"raw": "<SQL>"} компилируется в предложение HoneySQL и передаётся — произвольный SQL против базы данных приложения Metabase, без какой-либо аутентификации.

:raw
дословно, без параметризации

Этот репозиторий содержит детектор (слепой инструмент проверки на основе временной задержки) и анализ первопричины, полученный из патча вендора. Он предназначен для защитников, проверяющих собственную подверженность уязвимости, и для исследователей безопасности, изучающих эту ошибку. Он не извлекает данные и не предоставляет готовый эксплойт для захвата административного доступа.

  • cve-2026-72898.py — детектор с проверкой версии и отказом по умолчанию (VULN / SAFE / UNTESTED)
  • TECHNICAL.md — полный анализ первопричины из диффа патча v0.63.2 → v0.63.15
  • lab/docker-compose.yml — уязвимый и пропатченный экземпляры для воспроизведения

Демонстрация

Демонстрация детектора CVE-2026-72898

Детектор сообщает VULN для уязвимого экземпляра и SAFE для пропатченного — и UNTESTED (никогда не ложный SAFE), когда запрос ограничен по частоте, кэширован или не достигает приложения. Также предоставлена запись в виде asciinema cast.

Затронутые / исправленные версии

ВеткаУязвимаяИсправленная
0.58 / 1.58< 0.58.240.58.24
0.59 / 1.59< 0.59.210.59.21
0.60 / 1.60< 0.60.170.60.17
0.61 / 1.61< 0.61.110.61.11
0.62 / 1.62< 0.62.90.62.9
0.63 / 1.63< 0.63.50.63.5

Консультативное заключение: GHSA-vwf4-m7j8-wcjf. Если вы используете затронутую версию, обновитесь немедленно — эта уязвимость эксплуатируется в реальных атаках.

Примитив

root@kitploit:~
POST /api/session/reset_password HTTP/1.1
Content-Type: application/json

{"token":"1_00000000-0000-0000-0000-000000000000",
 "password":"Placeholder1!",
 "user-id":{"raw":"<ARBITRARY SQL>"}}

даёт в базе данных приложения:

root@kitploit:~
SELECT id, ... FROM core_user WHERE id = (<ARBITRARY SQL>)

Ошибка является слепой — процесс сброса проглатывает ошибки SQL и возвращает одинаковый 400 {"errors":{"password":"Invalid reset token"}} во всех случаях — поэтому детектор использует временной оракул. См. TECHNICAL.md для полного потока данных и диффа патча.

Использование

root@kitploit:~
python3 cve-2026-72898.py https://metabase.example.com                    # H2 app db (по умолчанию)
python3 cve-2026-72898.py https://metabase.example.com --engine postgres  # pg_sleep оракул
python3 cve-2026-72898.py https://metabase.example.com --json --trials 5

Код выхода 0 = VULN, 1 = SAFE или UNTESTED.

Почему он отказывает по умолчанию

Вердикты: VULN / SAFE / UNTESTED — никогда «вероятно, безопасно». Инструмент:

  • отказывается срабатывать вне затронутого диапазона версий (отрицательный результат там описывает версию, а не эксплойт) — --force переопределяет это намеренно;
  • ротирует X-Forwarded-For для каждого запроса, поскольку конечная точка сброса ограничивает частоту до 10 попыток, а ответ на ограничение — это быстрый 400, который иначе имитирует отрицательный результат;
  • использует оракул H2 (sum(x) по SYSTEM_RANGE), который движок не может оптимизировать, и требует, чтобы задержка превышала как абсолютный минимум, так и собственный разброс времени контроля;
  • классифицирует запрос с ограничением частоты, кэшированный или с ошибкой транспорта как UNTESTED, а не SAFE.

Воспроизведение

root@kitploit:~
cd lab
docker compose up -d          # 3300 = уязвимая v0.63.2, 3301 = пропатченная v0.63.15
# подождите ~90 секунд для инициализации БД при первом запуске
python3 ../cve-2026-72898.py http://127.0.0.1:3300                 # -> VULN
python3 ../cve-2026-72898.py http://127.0.0.1:3301 --force         # -> SAFE

Проверено: v0.63.2 показывает дельту 8+ секунд, которая линейно масштабируется с количеством строк полезной нагрузки (5M→0.85s, 10M→1.96s, 20M→4.61s, 40M→7.97s); v0.63.15 не показывает разницы.

Ответственное использование

Тестируйте только системы, которыми вы владеете или на оценку которых у вас есть явное разрешение. Несанкционированный доступ к компьютерным системам незаконен в большинстве юрисдикций. Этот инструмент обнаруживает уязвимость с помощью безвредного временного зонда и намеренно не читает, не изменяет и не извлекает данные.

Лицензия

MIT — см. LICENSE.

Скачать инструмент