文件
websafe-kb/07-framework-security/frontend-js/cases/nextjs-ghsa-f82v-jwr5-mffw.md

2.7 KiB

title, published_date, affected_versions, fixed_versions, severity, exploit_status, stack, attack_type, primary_source, secondary_sources, target_types, public_target_allowed, authorization_required, minimum_validation, prohibited_use
title published_date affected_versions fixed_versions severity exploit_status stack attack_type primary_source secondary_sources target_types public_target_allowed authorization_required minimum_validation prohibited_use
Next.js middleware authorization bypass mapping 2025-03-21
>= 11.1.4, < 13.5.9
>= 14.0.0, < 14.2.25
>= 15.0.0, < 15.2.3
13.5.9
14.2.25
15.2.3
critical See official advisory; treat as high-priority authorization bypass
Next.js
middleware
authorization bypass
https://github.com/vercel/next.js/security/advisories/GHSA-f82v-jwr5-mffw
lab-local
lab-public
authorized-third-party
true true Use an isolated vulnerable app and compare unauthorized access behavior before and after upgrading. Do not try bypass paths against unowned or unapproved public deployments.

Next.js 中间件授权绕过映射

事件层

  • 官方来源: GHSA-f82v-jwr5-mffw
  • 发布时间: 2025-03-21
  • 影响范围: 11.1.4 至 13.5.9 之前,14.0.0 至 14.2.25 之前,15.0.0 至 15.2.3 之前
  • 修复版本: 13.5.9、14.2.25、15.2.3

该事件的关键点不是“某个单一路径绕过技巧”,而是把授权逻辑放在 Next.js middleware 中时,路径匹配、标准化或边界处理一旦出问题,就可能让前置授权失效。

实验层

适用目标类型

  • lab-local
  • lab-public
  • authorized-third-party

实验思路

  1. 在隔离环境部署一个存在受保护路由的 Next.js 应用,例如 /admin 完全依赖 middleware 做访问控制。
  2. 保持后端业务处理层不做二次鉴权,以便观察“只靠 middleware”时的风险。
  3. 在易受影响版本与修复版本之间对比未授权访问表现。
  4. 把请求路径、重定向、状态码、缓存行为和服务端日志写入测试记录。

推荐的最小化验证

  • 仅使用未授权访问对受保护路由做行为对比。
  • 只在实验环境或明确授权目标上复现官方公告所述边界问题。
  • 验证完成后立即升级到修复版本,并补上服务端二次鉴权。

观测点

  • 仅依赖 middleware 保护的路由是否能被未授权访问
  • 反向代理、缓存层或重写规则是否放大了边界问题
  • 升级后是否仍存在“前置鉴权失效、后端无兜底”的设计风险

回填建议