【漏洞预警】Next.js爆出RCE漏洞(POC已公开)CVE-2026-96889"

admin 2026-10-24 11:57:42 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

【漏洞预警】Next.js爆出RCE漏洞(POC已公开)CVE-2026-96889

YGnight
YGnight

night安全

2026年10月19日 08:10
四川

去阅读

一、漏洞描述

Next.js 的 /\_next/image 负责把图片压缩一遍再交给浏览器,前端传个原始地址和尺寸就行。

2026 年 10 月 14 日那次计划外的安全更新里,带了三个问题,这个是其中一个,公告编号 GHSA-2464-fhr4-w9xw。

崩的地方不在 Next 自己写的代码里。优化走 sharp,sharp 底下是 libvips,libvips 静态链了 librsvg,最后一环才是出问题的那个。

RustSec 那边编号 RUSTSEC-2026-0305,9 月 23 日发出,修在 librsvg 2.63.2。

打分有两套,量的是不同的东西。

官方把能拿到执行权的条件写成了 glibc 的 Linux,其他平台只到拒绝服务。

CVE 编号 CVE-2026-96889
公告编号 GHSA-2464-fhr4-w9xw,上游 RUSTSEC-2026-0305
漏洞类型 释放后使用,CWE-416,按 NVD 收录口径
影响组件 next 的图片优化接口,实际崩在它依赖的 librsvg,由 libvips 静态链入
受影响版本 10.0.0 ~ 15.5.27、16.0.1 ~ 16.4.0
修复版本 15.5.28、16.4.1,两版均把 sharp 声明抬到 0.35.5 以上
触发前提 目标能取到攻击者给的文件,走本地静态资源或已放行的远端图源都行
利用条件 无需认证,无需交互,默认配置即可;拿到执行权还需 glibc Linux 与非 PIE 的 node 构建
危害面 服务端进程被换掉,官方按机密性完整性可用性三项全 High 记分
CVSS 9.5,CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H;NVD 另收 Red Hat 口径 7.8
在野利用 公开情报中暂无已观测到的在野利用记录

二、漏洞原理

优化器手里有一份旁路名单,名单上的格式原样返回,压都不压。

// packages/next/src/server/image-optimizer/transform.ts
const BYPASS\_TYPES = [SVG, ICO, ICNS, BMP, JXL, HEIC]

if (BYPASS\_TYPES.includes(upstreamType)) {
    return { buffer: upstreamBuffer, contentType: upstreamType, ... }
}

// avif 不在这份名单里,buffer 继续往下交给 optimizeImage
// upstreamType 也不是 image/svg\*,dangerouslyAllowSVG 那道判断被绕开

SVG 在名单第一位。正常的 .svg 请求连 sharp 的门都摸不到,这个洞本来没有攻击面。

类型不是看后缀,是看文件头几个字节。

// packages/next/src/server/image-optimizer/detect-content-type.ts
// v16.4.0 与 v16.4.1 两个标签下,这个文件逐字节一致
if (
    [0, 0, 0, 0, 0x66, 0x74, 0x79, 0x70, 0x61, 0x76, 0x69, 0x66].every(
        (b, i) => !b || buffer[i] === b
    )
) {
    return AVIF
}

数组前四项是 0,!b 对它们恒真,等于跳过。真正要比的是后面八项,拼出 ftypavif 这串字符。

这八个字节能塞进 XML 注释。librsvg 读的时候把注释当空气,Next 那边的判断却已经认下了这个类型。

'>
    <!ENTITY e1 '... 内层文档重新声明 e1 ...'>
    <!ENTITY e2 '...'> <!ENTITY e3 '...'> <!ENTITY e4 '...'>
]>
&e0;&e1;&e2;&e3;&e4;

// 内层文档,e0 这个名字外层已经声明过一次

]>

// 载荷里不能有 <?xml ...?>,它不在第 0 字节时 librsvg 直接报错

展开 e0 的时候,libxml2 顺着 data 地址把内层文档取回来解析,那份文档又声明了一遍 e0。

librsvg 的实体表和 libxml2 用的是同一张,entity\_insert() 把外层那条替换掉,替换时 Drop 调了 xmlFreeNode()。

外层的 xmlCtxtParseEntity() 手里还攥着那块 144 字节。

librsvg 的修复在提交 8a1b0cd3,做法是不再释放 libxml2 还在用的 xmlEntity 指针。

一份不够。被释放的那块得再被摸一次,公开靶场试下来五对才分叉,四对以下两个版本都能正常出图。

崩出来的样子是 libxml2 读到释放后的内存,抛 PCDATA invalid Char value 0,sharp 跟着报错;修好的 librsvg 老老实实把图渲染出来。

这里有个坑。优化器把异常接住了,回的是上游那份原始 buffer,状态码照样 200。看状态码判断在不在范围内是没用的。

能看的只有响应体。命中的话开头就是那 15 个字节的注释,正常渲染出来的 JPEG 不可能是这个开头。

缓存按地址加宽度加质量存盘,一个组合成功过一次之后,后面再来就不进 librsvg 了。探测要换个 w 值逼它重新取一次。

崩到执行还有一段距离,公开靶场把它走通了,条件卡得比较死。

node 得是非 PIE 的官方 linux-x64 包,地址才能当编译期常量写死,不需要额外泄漏。内置的 gadget 表覆盖 v24.20.0 与 v22.23.3,两个都拿到了执行权,v20.20.2 只停在段错误。

装载的路子有点绕。ROP 链每 8 个字节转一个双精度浮点,写进  的坐标里。

XML 解析器把坐标存成 double,用最短十进制表示,位型对得上,来回无损。链长上限 60 个 qword,命令上限 71 字节。

execve 落地之后进程被换掉,连接直接断,结果不会回在响应里。验证得走带外。

三、修复建议

16.4 版本升 16.4.1,15.5 版本升 15.5.28。

近期值得重点关注的漏洞预警

【紧急漏洞预警】nacos爆出权限绕过漏洞,可以创建管理员账户,经过分析有点出处(已复现,exp脚本已编写)

【漏洞预警】Nextcloud 已有服务器被写入后门

【紧急漏洞预警】GitLab整数溢出导致RCE漏洞(POC已公开)

【漏洞预警】AnyDesk Linux存在堆缓冲区溢出漏洞(POC已公开)

【漏洞预警】macOS爆出路径穿越漏洞CVE-2026-84568(POC已公开)

PostgreSQL爆出远程代码执行漏洞(POC已公开)

【漏洞预警】Atlassian八款产品爆任意文件读取漏洞(附POC)

【漏洞预警】Joomla视频画廊扩展存在SQL注入漏洞(POC已公开)

【漏洞预警】Roundcube网页邮件客户端存在SQL注入漏洞(附POC)

WordPress页面模板存在文件包含漏洞(POC已公开)CVE-2026-87902

WordPress插件Forminator未认证短代码执行漏洞(poc已公开)CVE-2026-92229

WordPress插件Authorizer存在权限提升漏洞(POC已公开)CVE-2026-81294

WordPress插件MStoreAPI存在认证绕过漏洞(POC已公开)CVE-2026-13447

CakePHP爆出SQL注入漏洞(POC已公开)CVE-2026-77635

Node.js模块proxy-addr爆出严重漏洞CVE-2026-90711

Langflow爆出代码执行漏洞CVE-2026-17633  (POC已公开)

Apache CVE-2026-42536,补它只用一行,洞龄十四年

【紧急】搜狗输入法爆出远程代码执行漏洞CVE-2026-51990  ,已被在野利用

【紧急】无需登录就能获取 GitLab 的任意文件数据(附POC)

【紧急】JumpServer堡垒机被公布Access Key泄露漏洞,可以实现提权

Spring Cloud Azure公布严重漏洞 无需任何权限即可取得登录会话

【漏洞POC已公开】Linux RDS 爆出提权漏洞 一块内存放两次,root就到手了

Tenda光猫爆出严重漏洞,目前无补丁(POC已公布

13 行补丁,堵住Linux能拿 root 的内核洞(EXP已公开)

48 字节,换走一台 Windows 的 SYSTEM(CVE-2026-62735漏洞POC已公开)

【漏洞预警】linux删个网桥就能提权root?目前没有补丁(POC已公开)

【漏洞预警】Linux三年前补上的洞,又一次被挖开了

【情报】支付宝8.2亿数据泄露?给同事说一声,别自己吓自己

【漏洞预警】自己注册个号,就能搬空别人的 Magento 订单和支付卡(POC已公开)

【漏洞预警】Next.js 爆出新漏洞,不用登录实现命令执行(POC已公开)

【漏洞补丁绕过预警】Redis CVE-2026-23479变种高危漏洞,EXP已公开

【漏洞补丁绕过】超 30 万 WordPress 站点受影响,Forminator 文件上传漏洞(附POC)

【漏洞预警】Exchange爆出RCE漏洞,利用Exchange 帮另一台 Exchange 开门(POC已公开)

【漏洞预警】不用登录,一个请求就能让 GeoServer 乖乖执行命令(POC已公开)

【漏洞预警】Keycloak不登录就能接管任意账户,双重验证也拦不住

【漏洞预警】 8月WebLogic公布了9个漏洞,有一个需要重点关注

【漏洞预警】近期MongoDB 公布了5个漏洞,最严重的一个可以不认证、远程就能拿下你电脑

【0DAY漏洞】 全球5G手机芯片厂商之一‌的紫光展锐SOC存在RCE漏洞,影响数十家手机厂商,还未发布补丁

【漏洞告警】安卓 14 到 16 全中招,通讯录 SQL 注入漏洞正在抄家(POC已公开)

【漏洞预警】紧急排查,SMB服务再曝新漏洞,利用脚本已公开

【漏洞预警】不用输密码,对方已经接管你的Mac:官方补丁公布macOS存在未鉴权RCE漏洞

【0day漏洞预警】MariaDB 13 爆 9.8 分 RCE 链:最低 USAGE 权限就能远程执行命令

VMware 爆 5 个洞,两个 9.8 不用密码就能打穿 vCente

AI代理渗透测试:ARTEXAI银行入侵分析" 网络安全文章

AI代理渗透测试:ARTEXAI银行入侵分析"

2026年10月韩国多家银行遭AI代理攻击,攻击者使用ARTEXAI渗透测试套件结合Claude代理实现全流程自动化入侵,影响约89万个账户,造成470万美元直接损失及2300万美元罚款。攻击仅用8天完成,较典型APT缩短73%。检测需基于行为分析识别AI扫描特征,防御需部署AI感知WAF、速率限制及欺骗技术。
CVE-2025-52488漏洞复盘:全角反斜杠,让DNN泄露NTLM" 网络安全文章

CVE-2025-52488漏洞复盘:全角反斜杠,让DNN泄露NTLM"

本文复盘CVE-2025-52488漏洞,攻击链利用全角反斜杠绕过过滤,经Unicode归一化还原为反斜杠,结合Path.Combine的绝对路径覆盖特性,构造UNC路径触发SMB外联,导致NTLM哈希泄露。漏洞影响DNN6.0.0至10.0.0,补丁为10.0.1。检测需阻断出站445端口并审计NTLM外联,修复应遵循先归一化再校验原则。
评论:0   参与:  0