MaxKB — это ИИ-помощник с открытым исходным кодом для предприятий. Версии 2.7.1 и ниже содержат уязвимость хранимого межсайтового сценария (XSS), при которой компонент внешнего интерфейса MdRenderer.vue анализирует пользовательские теги <iframe_render> из ответов LLM или конфигураций пролога приложения, минуя стандартную очистку Markdown и фильтрацию XSS. Необработанное HTML-содержимое передается компоненту IframeRender.vue, который отображает его непосредственно в <iframe> через атрибут srcdoc, настроенный с помощью sandbox="allow-scriptsallow-same-origin".
Это может быть опасная комбинация, позволяющая внедренным сценариям выйти из iframe и выполнить JavaScript в родительском окне с помощью window.parent. Поскольку пролог отображается для любого пользователя, посещающего интерфейс чата приложения, это приводит к высокоэффективному сохраненному XSS, который может привести к перехвату сеанса, несанкционированным действиям и раскрытию конфиденциальных данных. Эта проблема исправлена в версии 2.8.0.
Показать оригинальное описание (EN)
MaxKB is an open-source AI assistant for enterprise. Versions 2.7.1 and below contain a Stored Cross-Site Scripting (XSS) vulnerability where the frontend's MdRenderer.vue component parses custom <iframe_render> tags from LLM responses or Application Prologue configurations, bypassing standard Markdown sanitization and XSS filtering. The unsanitized HTML content is passed to the IframeRender.vue component, which renders it directly into an <iframe> via the srcdoc attribute configured with sandbox="allow-scripts allow-same-origin". This can be a dangerous combination, allowing injected scripts to escape the iframe and execute JavaScript in the parent window using window.parent. Since the Prologue is rendered for any user visiting an application's chat interface, this results in a high-impact Stored XSS that can lead to session hijacking, unauthorized actions, and sensitive data exposure. This issue has been fixed in version 2.8.0.
Характеристики атаки
Последствия
Строка CVSS v4.0