请大家自觉遵守网络安全法,非授权测试皆为违法行为。

CVE-2026-94545 是 Next.js next/og(ImageResponse)相关的高危漏洞,根本原因在上游 Satori 的 SVG 序列化未正确转义。
01概述
| 编号 | |
| 组件 | next/og(Node 运行时)+ Satori |
| 类型 | |
| 公开时间 | |
| 官方公告 | GHSA-wx4j-mvgx-mqwp(Satori) |
02原理
next/og用 Satori 把 JSX 渲成 SVG,再交给下游(如 sharp)栅格化成 OG 图。- 受影响的 Satori 未对写入 SVG 的文本/属性/样式做正确转义。
- 若把攻击者可控内容(如 URL 参数、用户昵称)直接放进
ImageResponse,可能注入 SVG 标记。 - 在 Node.js 运行时且走 native sharp 路径时,可能进一步变成未授权远程代码执行(以 Next 服务进程权限)。
- Edge 运行时(
export const runtime = 'edge')走沙箱化的 resvg-wasm,不受此 RCE 路径影响。
03影响范围
| Next.js | ImageResponse) | ≥ 16.3.6 |
| satori | ≥ 0.33.5 |
说明:
- 主要风险:Node 运行时 + 安装了 sharp + 把请求/用户数据传入
ImageResponse的 OG 路由。 - Next.js 15.x:按厂商说明,不在本 RCE 问题影响范围内(部分版本有相关加固,但与本 CVE 的 RCE 路径不同)。
- 攻击面通常是:动态 OG 图接口,例如根据
?title=、用户名等生成分享图。
04影响与利用条件
- 未认证即可打到暴露的 OG 路由时,风险最大。
- 成功时可能以 Next.js 服务进程执行任意命令,进而读环境变量、密钥、横向移动等。
- 利用往往是 blind(请求可能直接断连),结果需通过回连等方式观察。
05修复与缓解
首选:升级
临时缓解(无法立刻升级时):
- 将
next/og相关路由改为export const runtime = 'edge'(走 wasm 路径)。 - 或移除 sharp,避免 native 栅格化路径(需评估对图片能力的影响)。
- 不要把未消毒的用户/请求输入直接作为
ImageResponse的子节点或属性。 - 对公开 OG 路由做限流、鉴权(若业务允许)。
06自查建议
- 检查
package.json中next是否在16.2.0–16.3.5。 - 搜索项目中的
ImageResponse、next/og、动态 OG 路由。 - 确认这些路由是否使用 Node 运行时以及是否安装了 sharp。
- 升级后重新构建并部署,再验证 OG 图仍正常。
- CVSS v4.0 得分为 9.5,高危漏洞,优先升级
07参考链接
- Next.js 安全公告:
https://github.com/vercel/next.js/security/advisories/GHSA-vcvr-r3jv-pc5j - Satori 安全公告:
https://github.com/vercel/satori/security/advisories/GHSA-wx4j-mvgx-mqwp - Next.js 2026-09-22 安全更新说明:
https://nextjs.org/blog/nextjs-security-update-september-22-2026
08利用POC
- POC:
https://github.com/EQSTLab/CVE-2026-94545