文章总结: 本文报道Next.js框架曝出CVSS9.5严重漏洞CVE-2026-94545,影响next/og库ImageResponse功能,攻击者可利用畸变SVG注入实现服务端RCE。受影响版本为16.2.0至16.3.5,建议升级至16.3.6或切换Edge运行时缓解,并严格过滤入参。
综合评分: 85
文章分类: 漏洞分析,应急响应,安全工具
【安全圈】Next.js曝光9.5分严重漏洞:动态制图缺陷致服务端RCE
安全圈
2026年9月23日 19:00
江苏
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
关键词
漏洞
🚨 全球最流行的 React 全栈框架 Next.js 日前突发严重级别安全通告,披露了一个 CVSS 评分高达 9.5 的严重漏洞(CVE-2026-94545)。 该漏洞存在于用于动态生成社交分享图与 Open Graph 卡片的 ImageResponse 功能中。当应用将用户可控参数填入图像渲染模板时,攻击者可构造特殊畸变 SVG 向量突破转义,最终在服务端 Node.js 运行时内实现任意命令执行。
01 / 漏洞档案与受影响组件
Next.js 在近几个大版本中原生引入了 next/og 库,支持开发者直接使用 JSX 语法编写布局,并在服务端实时光栅化为 PNG 预览图。由于大量 SaaS 平台、博客、电商页面普遍采用该特性为每个页面生成带有标题和用户昵称的个性化分享卡片,该漏洞波及面极其宽泛。
📋 漏洞核心情报档案
漏洞编号CVE-2026-94545
危险评级CVSS 9.5 CRITICAL(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
漏洞组件next/og (ImageResponse) & 底层 Satori SVG 渲染转换链条
受影响版本Next.js 16.2.0 至 16.3.5(运行在 Node.js 运行时)
安全版本Next.js 16.3.6、Edge 运行时环境、以及 Next.js 15 及更早版本
02 / 漏洞原理剖析:SVG 转译逃逸与执行链
🔍 1. 动态制图的处理机制
在 Next.js 的路由处理器(Route Handlers)或 opengraph-image.tsx 中,开发者通常按如下方式编写动态路由:
// 典型受影响代码模式:import { ImageResponse } from'next/og';export async functionGET(request: Request) { const { searchParams } = newURL(request.url); const userTitle = searchParams.get('title'); // 外部可控输入 return newImageResponse( (<div style={{ fontSize: 40 }}>{userTitle}</div>) );}
在底层,ImageResponse 依赖 Vercel 的开源库 Satori。Satori 的核心任务是将 HTML/CSS 子集转换为 XML 格式的 SVG 代码,接着交由 Resvg 或内置 WASM 引擎栅格化为位图输出。
⚡ 2. 属性上下文注入与 RCE 达成
安全公告披露,当开发者将未经过滤的用户输入传入 SVG 节点内容、属性或内联样式时,Satori 在 Node.js 运行时环境下对部分特定 XML 实体与样式计算未作严格边界清洗。攻击者通过构造特殊的嵌套闭合符号,可以将恶意结构注入到转换流程中,逃逸数据边界并触发动态求值逻辑,在 Node.js 宿主进程中执行操作系统调用。
值得注意的是,Edge 运行时(Edge Runtime)不受影响。因为 Edge 环境采用了精炼受限的 V8 沙箱实例,切断了 Node.js 原生 child_process、fs 等系统级别 API 的调用路径。
03 / 代码排查与影响面核验
开发与运维团队可使用以下命令在代码仓库中快速检索潜在风险点:
# 检查项目中是否使用了 next/og 或 ImageResponse:grep -rn "from ['\"]next/og['\"]" src/ app/ pages/# 检查是否存在 opengraph-image 动态路由:find app -name "opengraph-image.*" -o -name "twitter-image.*"
若检索到上述文件,需重点审查该路由内部是否接收了 req.nextUrl.searchParams、params 等客户端传入数据,并直接拼接渲染到图像 JSX 结构中。
04 / 修复方案与应急加固
✅ 1. 升级 Next.js 核心版本(推荐彻底解决)
Vercel 官方已正式推送 Next.js 16.3.6 补丁。建议所有使用 16.2.0 ~ 16.3.5 版本的项目立即执行依赖更新:
npm install [email protected] 或 pnpm update [email protected]
🛡️ 2. 临时缓解方案:切换至 Edge Runtime
若无法立即升级框架大版本,可在所有使用 ImageResponse 的路由文件顶部显式声明 Edge 运行时,阻断 Node.js 系统 API 调用链:
export const runtime = 'edge';
⚙️ 3. 严格入参净化与字数截断
对所有拟传入制图模板的外部文本进行白名单字符过滤、HTML 实体编码与强限制长度(如最多 60 字符),防止攻击者注入多行标签与特殊转义序列。
END
阅读推荐
【安全圈】WordPress爆Comment2Shell高危漏洞:匿名评论经由管理员会话直达RCE
【安全圈】Zyxel与Veeam高危漏洞遭野外在途利用:防火墙注入与备份控制权沦陷
【安全圈】伪造LastPass安装包携微软签名驱动:BYOVD攻击静默绞杀EDR与安全软件
【安全圈】朝鲜黑客渗透IT服务商:伪造Terraform锁文件结合Cursor打入macOS
安全圈
←扫码关注我们
网罗圈内热点 专注网络安全
实时资讯一手掌握!
好看你就分享 有用就点个赞
支持「安全圈」就点个三连吧!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全圈 《【安全圈】Next.js曝光9.5分严重漏洞:动态制图缺陷致服务端RCE》