跳到正文
10月21日周三
  1. GitHub 安全公告库 (GHSA)58

    MCP TypeScript SDK 跨源重定向泄露请求头与 OAuth 凭据,1.32.0 与 2.3.0 修复

    GitHub 安全公告指出,@modelcontextprotocol/sdk 1.31.0 及之前所有版本、@modelcontextprotocol/client 2.0.0 至 2.2.0 的 HTTP 客户端传输与 OAuth 请求会跟随任意源的重定向。

    为什么值得看:公告说明了跨源重定向会泄露自定义请求头与 OAuth 凭据,并给出受影响版本区间和升级版本,便于使用该 SDK 的开发者核对。

  2. GitHub 安全公告库 (GHSA)58

    follow-redirects 数组形式 headers 绕过跨域凭据剥离,影响 1.15.11 与 1.16.0

    follow-redirects 在跟随跨域或协议降级重定向时,本应移除 Authorization、Proxy-Authorization、Cookie 及调用方声明的 sensitiveHeaders。

    为什么值得看:公告指出数组形式 headers 会让跨域凭据剥离静默失效,并给出可复现脚本与修复思路,便于使用该库的 Node.js 项目自查。

  3. GitHub 安全公告库 (GHSA)42

    ApostropheCMS 的 sanitize-html 因隐式闭合提前结束 nonTextTags 丢弃区,导致内容被渲染

    ApostropheCMS 使用的 sanitize-html 在处理 nonTextTags 时忽略 htmlparser2 传入的 isImplied 标志,从内部闭合仍未关闭的祖先元素会提前结束丢弃区,使本应被丢弃的内容被渲染。问题位于 index.js 的 onclosetag 处理逻辑(:638、:644),修复建议是隐式闭合不得结束丢弃区。

  4. GitHub 安全公告库 (GHSA)32

    ApostropheCMS @apostrophecms/page 模块 move() 同父级重排绕过 create 授权(CWE-862/CWE-639)

    ApostropheCMS 的 @apostrophecms/page 模块 move() 在跨父级移动时才校验目标父级的 create 权限,同父级重排会短路该检查,低权限编辑者可重排受限父级下其他子页面的 rank。该缺陷属 CWE-862/CWE-639,仅影响同级排序,不泄露字段内容也不影响可用性,且需管理员预先将可编辑页面置于受限父级下这一非默认树结构。

  5. GitHub 安全公告库 (GHSA)58

    ApostropheCMS 跨域会话令牌置于 URL 可致会话接管

    GitHub 安全公告 GHSA-hhvr-8m24-qqr3 指出,ApostropheCMS 的跨域会话迁移把一次性会话令牌作为 URL 查询参数 `?aposCrossDomainSessionToken` 下发并存入 Mongo 缓存,任何拿到该令牌的客户端无需凭证即可继承目标用户的完整会话(含 `passport.user`)。

    为什么值得看:公告给出可复现的 curl 步骤,说明跨域会话令牌放在 URL 查询参数里如何被无凭证客户端直接接管会话。

  6. GitHub 安全公告库 (GHSA)58

    ApostropheCMS 页面 REST API 授权绕过漏洞,匿名可读取私有页面

    GitHub 安全公告披露 ApostropheCMS 核心页面 REST API 存在授权绕过,getOne 与 all=1 树形导出使用 .permission(false),绕过页面类型的 viewRole、visibility: private 和 visibility: loginRequired 检查。

    为什么值得看:公告给出了匿名读取私有页面的 curl 复现步骤,并指出 getOne 与 all=1 两处缺少权限校验的代码位置。

  7. GitHub 安全公告库 (GHSA)58

    ApostropheCMS import-export 存在 NoSQL 注入,update-key 值可匹配并覆盖未指定文档

    GitHub 安全公告披露 @apostrophecms/import-export 的 update-by-key 功能存在 NoSQL 注入:导入文档的 `slug:key` 值被直接用作 MongoDB 查询值,归档经 EJSON 解析后 `{ $ne: null }` 等操作符会成为有效值,从而匹配并覆盖导入者并未指定的既有文档。

    为什么值得看:公告说明该模块的 update-key 查询值未经清洗,并给出与 GHSA-79qf-vqgc-7xx3 同类的修复思路,便于开发者对照自查。

10月20日周二
  1. GitHub 安全公告库 (GHSA)40

    klauspost/compress s2 的 s2.NewDict 存在整数溢出与越界写入漏洞

    klauspost/compress 的 s2 包中,s2.NewDict() 存在有符号整数溢出漏洞,攻击者提供 uvarint 编码的 repeat 值超过 MaxInt64 的字典即可绕过重复索引校验。随后调用 Dict.Encode() 时,负值 repeat 经 unsafe.Pointer 算术导致越界内存访问,进程以 SIGSEGV 崩溃,构成拒绝服务。

  2. GitHub 安全公告库 (GHSA)58

    Hono 的 serveStatic 二次解码请求路径,导致静态路径中间件被绕过

    GitHub 安全公告指出,Hono 在路由前已解码一次请求路径,serveStatic 解析文件前又解码一次,构造畸形百分号编码序列可让路由匹配编码形式、实际却解析到真实目录,从而绕过挂载在静态前缀上的中间件。文件仍在配置的根目录内解析,并非目录穿越;仅提供公开文件的应用不受影响。

    为什么值得看:公告说明了二次解码导致静态路径中间件被绕过的条件,挂载鉴权中间件的应用可据此判断是否受影响。

  3. GitHub 安全公告库 (GHSA)72

    Mercury 默认免认证配置下 /api/kernels 可致 RCE,3.2.4 上已复现并附 PoC

    Mercury 默认以无 token 方式运行 JupyterLab,黑名单未包含 /api/kernels,未认证客户端可创建内核并通过 websocket 发送 execute_request 执行任意 Python 代码。

    为什么值得看:材料在已修复旧通告的 3.2.4 版本上实测复现了免认证 RCE,并附可运行 PoC,说明黑名单思路无法覆盖内核接口。

  4. GitHub 安全公告库 (GHSA)58

    agent-router 的 MCP 会话恢复未校验内嵌 subject,Helm 默认种子致会话 ID 可伪造

    GHSA-953h-535j-jg2v 通告指出,agent-router 的 MCP 代理在会话 ID 中内嵌调用者 JWT 的 sub 声明用于防劫持,但会话恢复路径从不校验该声明,任何拿到会话 ID 的客户端都能恢复该会话并调用 tools/call、resources/read 等方法。

    为什么值得看:公告指出会话恢复路径未校验会话 ID 内嵌的 subject,且 Helm 默认种子为公开固定值,可据此判断多租户部署的会话隔离风险。

  5. GitHub 安全公告库 (GHSA)78

    Mercury 因 BLOCKED_PATTERNS 缺少逗号导致 /api/terminals 免认证 RCE

    Mercury 的 mercury_app/block_handler.py 中 BLOCKED_PATTERNS 列表缺少一个逗号,使前两条规则被合并,/api/terminals 不再被拦截,任何无需认证的攻击者都能通过该接口启动 OS shell。

    为什么值得看:公告给出完整复现步骤与修复代码,可对照检查自家 Mercury 部署是否暴露 /api/terminals。

10月18日周日
  1. GitHub 安全公告库 (GHSA)22

    GitHub 撤回重复通告:ip-address 10.7.4 前 Address6 因区域标识符匹配呈二次复杂度可致进程停滞

    ip-address 10.7.4 之前版本存在拒绝服务漏洞,Address6 构造函数在匹配区域标识符时呈二次时间复杂度,输入中包含大量 % 字符即可耗尽 CPU 并导致应用停滞。该通告已被撤回,因与 GHSA-rxp7-6hxx-x8q5 重复,仅保留以维护外部引用。

8月7日周五