Next.js 远程代码执行漏洞 CVE-2026-94545 的 PoC 利用代码已发布
sec随谈
sec随谈
sec随谈
2026年10月3日 09:20
北京
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
CVE-2026-94545 的技术细节和可用的概念验证(PoC)利用代码现已公开。这是 next/og 图像 API 中的一个严重 Next.js 远程代码执行漏洞,只需一个未经身份验证的请求即可在服务器上执行命令。Next.js 16.3.6 和 Satori 0.33.5 已修复该漏洞。
为何重要
EQSTLab 在其 CVE-2026-94545 的 GitHub 仓库中发布了该漏洞的完整分析文章和利用脚本。其演示在测试容器上打开了一个 root shell。此后,其他研究人员也发布了自己的实验环境工具。
CyCognito 将该漏洞的 CVSS v4 评分定为 9.5。该公司还发现暴露的资产分布于各行各业,其中工业领域占比最高,为 19.7%。目前尚无来源确认存在在野利用。不过,公开的利用代码会大幅缩短防御方的应对时间。
攻击如何实现
next/og 模块用于生成 Open Graph 图像。首先,Satori 将 JSX 转换为 SVG,但它在把用户文本写入该 SVG 时没有进行转义。因此,攻击者可以闭合元素并注入自己的标记。
在安装了 sharp 的 Node.js 运行时上,libvips 和 libxml2 等原生库随后会渲染该 SVG。EQSTLab 发现,精心构造的 XML 实体会破坏该解析器内部的内存。由于官方 Node 二进制文件是非 PIE 的,其地址保持固定。因此,该利用无需泄露地址,在任何使用相同构建的主机上都能生效。
该攻击是盲打式的,并且会使工作进程崩溃。实际中,攻击者会使用反向 shell 来取回输出。
受影响版本
- 使用 Node.js 运行时并安装了 sharp 的 Next.js 16.2.0 至 16.3.5
- Satori 0.0.27 至 0.33.5 之前(不含 0.33.5)
使用 Edge 运行时的路由,或未安装 sharp 的部署,会使用沙箱化的渲染器。在这些情况下,该 Next.js 远程代码执行路径无法达到代码执行。
补丁与缓解措施
立即升级
按照 Vercel 安全公告的建议,升级至 Next.js 16.3.6 和 Satori 0.33.5。
临时措施
- 将 next/og 路由切换到 Edge 运行时,或移除 sharp。
- 不要将原始用户输入直接传入 ImageResponse。
- 限制应用服务器的出站流量,以阻断反向 shell。
最后,应将任何暴露在外且未打补丁的实例视为已被入侵。请轮换应用可读取的密钥,并检查是否存在持久化后门。
参考链接:
https://github.com/vercel/next.js/security/advisories/GHSA-vcvr-r3jv-pc5j
https://github.com/EQSTLab/CVE-2026-94545
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论