漏洞总结:usememos 存储型 XSS 与越权访问 漏洞概述 漏洞名称:Stored XSS and Broken Access Control in usememos/memos 发布日期:2026年1月31日 严重程度:Critical (CVSS v4.0: 9.8) 漏洞类型: 1. Broken Access Control (Root Cause):后端 接口 未验证请求用户的管理员权限。 2. Unsafe DOM Sink:前端 使用 注入全局实例设置,且未进行适当过滤。 影响范围 受影响组件:后端 接口 ( ) 和前端 ( )。 利用条件:任何注册用户(无论角色),通过创建普通用户账号(默认“Member”角色)即可触发。 危害后果: 系统劫持:非特权用户可修改全局设置。 会话窃取:执行 JavaScript 窃取敏感数据(如 )。 全局沦陷:向所有访问者注入恶意脚本。 修复方案 1. 服务端授权:在 Go 后端实现基于角色的拦截器,确保 及相关接口仅管理员可访问。 2. 安全 DOM 注入:前端替换 的使用,改用 或集成 等库进行过滤。 概念验证 (PoC) 代码 Payload Injection (载荷注入): 利用步骤简述: 1. 创建一个普通用户账号(Member角色)。 2. 手动导航至管理页面(例如: )。 3. 从 Member 账号登录,在“Additional script”字段注入上述 Payload。 4. 点击“Save”,API 返回 200 OK 确认未授权修改。 5. 脚本将在任何访问该实例的用户浏览器中执行。