IPBUF安全漏洞报告
English
CVE-2026-39426 CVSS 5.4 中危

CVE-2026-39426 MaxKB 存储型XSS漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2026-39426
漏洞类型
存储型XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
MaxKB

相关标签

XSS存储型XSSMaxKBWeb安全iframe逃逸

漏洞概述

MaxKB是基于开源大语言模型的企业级AI助手。在2.7.1及以下版本中,存在一个高影响的存储型XSS漏洞。该漏洞源于前端组件在解析来自LLM响应或应用前言配置的自定义<iframe_render>标签时,未进行有效的安全过滤,导致攻击者可注入恶意脚本。由于iframe沙箱配置不当,这些脚本能够逃逸并在父窗口执行,进而劫持用户会话或窃取敏感数据。

技术细节

该漏洞的核心在于前端MdRenderer.vue组件和IframeRender.vue组件的处理逻辑。MdRenderer.vue在解析自定义标签时绕过了标准Markdown清洗,将未净化的HTML内容直接传递给IframeRender.vue。后者将内容通过srcdoc属性注入到iframe中,并设置了sandbox="allow-scripts allow-same-origin"。这种沙箱策略允许脚本执行且视为同源,使得iframe内的脚本能够通过window.parent访问父窗口DOM,从而逃逸沙箱限制。由于“应用前言”对所有访客可见,攻击者存储的恶意脚本将在受害者访问聊天页面时自动触发,实现跨站脚本攻击。

攻击链分析

STEP 1
1
攻击者登录MaxKB系统,获得编辑“应用前言”(Application Prologue)配置的权限。
STEP 2
2
攻击者在配置中注入包含恶意JavaScript代码的特定Payload,利用<iframe_render>标签绕过过滤。
STEP 3
3
系统保存该配置,恶意脚本被持久化存储在服务器端。
STEP 4
4
普通用户(受害者)访问该应用的聊天界面。
STEP 5
5
前端组件MdRenderer.vue和IframeRender.vue渲染应用前言,将恶意HTML加载到iframe中。
STEP 6
6
由于sandbox配置允许脚本执行且同源,恶意脚本通过window.parent逃逸并在父窗口上下文中执行。
STEP 7
7
攻击者窃取用户的Session ID或执行未授权操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2026-39426 MaxKB Stored XSS This payload should be injected into the "Application Prologue" configuration. --> <iframe_render> <script> // Escape the iframe sandbox using window.parent // and execute code in the parent context. try { window.parent.postMessage({ type: 'xss-poc', data: document.cookie, location: window.parent.location.href }, '*'); // Alternative: Direct DOM manipulation if same-origin policy permits // window.parent.document.body.insertAdjacentHTML('beforeend', '<h1>CVE-2026-39426 PoC</h1>'); } catch (e) { console.log('Sandbox escape failed'); } </script> </iframe_render>

影响范围

MaxKB <= 2.7.1

防御指南

临时缓解措施
如果无法立即升级,建议严格限制对“应用前言”配置的编辑权限,仅允许受信任的管理员操作。同时,部署Web应用防火墙(WAF)规则,拦截包含<iframe_render>等异常标签的HTTP请求,并在浏览器端启用严格的内容安全策略(CSP)以缓解脚本执行风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表