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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-8794 — Перебор имен пользователей через временной побочный канал аутентификации в PaperCut NG | Kitploit
Инструменты/GitHubGitHub/h4zaz/cve-2026-8794
РазведкаАнализ уязвимостейЭксплуатация веб-приложенийСбор информацииВеб-безопасностьТестирование на ПроникновениеАутентификация
GitHubh4zaz/cve-2026-8794

CVE-2026-8794

Перебор имен пользователей через временной побочный канал аутентификации в PaperCut NG

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

Популярное

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

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

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

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

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

CVE-2026-8794 — Перечисление имён пользователей через побочный канал по времени аутентификации в PaperCut NG

FieldDetails
CVE IDCVE-2026-8794
ПродуктPaperCut NG
Затронутая версия25.0.11 (Build 75758) и более ранние
CWECWE-208 — Наблюдаемое расхождение во времени
CVSS Score3.7 (низкий) — самостоятельно; возрастает при комбинировании с CVE-2026-8793
ИсследовательVivien LEBAS (@Hazaz)
СообщеноМай 2026
СтатусИсправлено — PaperCut NG 26.0.3

Резюме

Конечная точка аутентификации PaperCut NG демонстрирует измеримое расхождение во времени между попытками входа для существующих и несуществующих учётных записей. Это расхождение — вызванное тем, что хеширование пароля с помощью bcrypt выполняется только при обнаружении соответствующей учётной записи — позволяет неаутентифицированному злоумышленнику достоверно определять, существует ли данное имя пользователя в системе, измеряя время ответа HTTP.

В сочетании с CVE-2026-8793 (отсутствие защиты от перебора) эта уязвимость обеспечивает полную цепочку атаки для компрометации учётных данных: сначала перечислить действительные имена пользователей, затем выполнять неограниченный целенаправленный подбор паролей без риска блокировки.


Технические детали

Корневая причина

Расхождение во времени возникает из-за классического шаблона реализации: приложение вызывает сравнение bcrypt только в том случае, если в базе данных найдена учётная запись, соответствующая введённому имени пользователя. Для несуществующих учётных записей процедура аутентификации завершается досрочно — до вызова bcrypt — в результате чего время ответа становится измеримо меньше.

root@kitploit:~
Valid username:   DB lookup (found) → bcrypt comparison → failure response  ~2.1s avg
Invalid username: DB lookup (not found) → immediate failure response         ~0.2s avg

Этот шаблон хорошо задокументирован (см. CWE-208). Стандартное исправление заключается в выполнении фиктивного сравнения bcrypt даже при отсутствии учётной записи, что выравнивает время ответа для обоих путей выполнения.

Методология измерений

Попытки аутентификации выполнялись к конечной точке входа PaperCut NG в контролируемых условиях:

  • Окружение: изолированная лаборатория, Windows Server 2022, локальная сеть (базовая задержка менее миллисекунды)
  • Размер выборки: 15 попыток на каждое условие (существующее имя пользователя / несуществующее имя пользователя)
  • Инструмент: curl с параметром --write-out "%{time_total}", во всех случаях намеренно неверный пароль

Результаты

Два распределения показывают нулевое перекрытие, что делает перечисление надёжным даже при умеренном джиттере сети.

Подтверждение концепции

root@kitploit:~
# Measure response time for an existing account (wrong password)
curl -s -o /dev/null -w "%{time_total}\n" \
  -X POST "http://<target>:9191/app" \
  -H "Origin: http://<target>:9191" \
  --data "service=direct/1/Home/%24Form&inputUsername=admin&inputPassword=wrongpassword"
# Output: ~2.1s

# Measure response time for a non-existent account
curl -s -o /dev/null -w "%{time_total}\n" \
  -X POST "http://<target>:9191/app" \
  -H "Origin: http://<target>:9191" \
  --data "service=direct/1/Home/%24Form&inputUsername=zz_doesnotexist_zz&inputPassword=wrongpassword"
# Output: ~0.2s

Время ответа, значительно превышающее ~0.5s, достоверно указывает на действительное имя пользователя. Простой скрипт позволяет автоматизировать перечисление по списку слов с типовыми корпоративными схемами именования (firstname.lastname, flastname и т. д.).


Цепочка атаки с CVE-2026-8793

Эта находка наиболее эффективна при использовании в качестве первого шага двухэтапной атаки:

  1. Шаг 1 (CVE-2026-8794, данная находка) — Составьте список действительных имён учётных записей PaperCut NG, измеряя время ответа аутентификации. В корпоративной среде зачастую достаточно короткого списка слов из комбинаций firstname.lastname, полученных из открытых источников (LinkedIn, сайт компании, подписи электронной почты).

  2. Шаг 2 (CVE-2026-8793) — Выполняйте неограниченные попытки подбора пароля против подтверждённых действительных учётных записей. Отсутствие ограничения скорости или блокировки означает, что любые атаки с подстановкой учётных данных (credential stuffing) или подбором паролей (password spraying) могут проводиться полностью онлайн на полной скорости.


Воздействие

Неаутентифицированный злоумышленник с сетевым доступом к TCP/9191 может:

  • Достоверно определить, зарегистрировано ли конкретное имя пользователя в PaperCut NG
  • Составить список действительных имён пользователей, не вызывая срабатывания оповещений или блокировок
  • Использовать этот список как первый шаг к полной компрометации учётных данных через CVE-2026-8793

В типичных корпоративных развёртываниях имена пользователей PaperCut повторяют учётные записи Active Directory. Поэтому подтверждённое действительное имя пользователя PaperCut является также подтверждённым действительным доменным именем учётной записи, что усиливает ценность разведки за пределами самого PaperCut.


Устранение

Для администраторов (временные меры):

  • Ограничьте сетевой доступ к TCP/9191 только доверенными хостами управления
  • Разверните обратный прокси-сервер или WAF перед PaperCut NG, обеспечивающий ограничение скорости на конечной точке входа
  • Где возможно, используйте неочевидные и нестандартные форматы имён пользователей

Для вендора:

Выполняйте фиктивное сравнение bcrypt за постоянное время, когда введённое имя пользователя не соответствует ни одной учётной записи, обеспечивая выравнивание времени ответа независимо от того, существует ли учётная запись:

root@kitploit:~
# Pseudocode — constant-time authentication pattern
user = db.find_user(username)
if user:
    valid = bcrypt.verify(password, user.password_hash)
else:
    bcrypt.verify(password, DUMMY_HASH)  # always run, result discarded
    valid = False

Это хорошо зарекомендовавший себя шаблон для снижения рисков CWE-208 в процессах аутентификации.


Хронология

DateEvent
9 мая 2026Первоначальный отчёт отправлен команде безопасности PaperCut

Ссылки

  • CVE-2026-8794 на cve.org
  • CVE-2026-8793 — Связанная уязвимость
  • CWE-208: Наблюдаемое расхождение во времени
  • Атаки по времени на пароли — OWASP
  • Страница продукта PaperCut NG

Раскрыто в соответствии с принципами ответственного раскрытия уязвимостей. Полные технические детали были переданы команде безопасности PaperCut до публичного выпуска.

Исследователь: Vivien LEBAS — @Hazaz

Скачать инструмент
ConditionMin (s)Max (s)Mean (s)Std Dev
Существующая учётная запись (admin)2.082.192.130.031
Несуществующая учётная запись (zz_doesnotexist_zz)0.180.240.210.018
Разница~1.92s
10 мая 2026
Получено подтверждение
Май 2026Назначен CVE-2026-8794 организацией PaperCut (CNA)
Август 2026Выпущено исправление — PaperCut NG 26.0.3
Август 2026Публичное раскрытие скоординировано с вендором