严重的 Next.js 身份验证绕过漏洞导致 Web 应用程序遭受攻击(CVE-2025-29927)

开源 Next.js 框架中有一个严重漏洞 (CVE-2025-29927),攻击者可以利用该漏洞绕过授权检查,并获得对他们无权访问的网页的未经授权的访问(例如,Web 应用程序的管理面板)。

Vercel 开发该流行框架的云平台即服务公司已发布安全更新修复该问题,并建议用户尽快升级。

Next.js 是一个全栈框架,通过帮助页面渲染、路由、性能和 SEO 优化等,使构建和发布 Web 应用程序变得更加容易。

Next.js 基于 React 构建,这是一个 JavaScript 库,用于通过单个可重用的组件构建 Web 用户界面,并且它们一起用于快速构建全栈、可投入生产的应用程序。

Next.js 使用自己的中间件来处理请求、保护路由、向响应添加安全标头,以及处理用户身份验证和用户重定向等内容(例如,基于地理位置、他们的会话/授权 cookie 等)。

CVE-2025-29927 允许攻击者通过向目标应用程序发送带有特制的x-middleware-subrequest标头的请求来绕过中间件安全控制。

如果我们将x-middleware-subrequest标头及其正确值添加到我们的请求中,中间件(无论其用途是什么)都将被完全忽略,请求将通过NextResponse.next()转发并完成其到达其原始目的地的旅程,而中间件不会对其产生任何影响。

标头及其值充当通用密钥,允许覆盖规则。

Vercel 的开发人员于 2025 年 3 月 14 日发布了临时补丁,并于几天后开始发布 Next.js 框架各个分支的新修复版本。

Next.js 被企业广泛使用,包括 Twitch、Spotify、Binance、Hulu、TikTok、OpenAI 等。

Showcase | Next.js by Vercel - The React Framework

Shodan 搜索引擎目前仅带有“X-Powered-By: Next.js”标头的服务就超过 300,000 个。

所有版本的 Next.js 都存在 CVE-2025-29927 漏洞。该问题已在 15.2.3、14.2.25、13.5.9 和 12.3.5 版本中修复。

根据 Next.js 维护人员的说法,该漏洞会影响使用中间件的自托管 Next.js 应用程序,尤其是如果它们仅依赖中间件进行身份验证或安全检查。

托管在 Vercel 和 Netlify 云平台上的应用程序不受影响,并且应用程序也不会部署为静态导出(因为不会执行中间件)。

框架维护人员建议:“如果无法修补到安全版本,建议您阻止包含x-middleware-subrequest标头的外部用户请求到达您的 Next.js 应用程序。”

CVE-2025-29927 | Next.js

ProjectDiscovery 就实施这一缓解措施的不同方法提供了建议。

CVE-2025-29927: Next.js Middleware Authorization Bypass - Technical Analysis — ProjectDiscovery Blog

Cloudflare为其托管的 WAF(Web 应用程序防火墙)客户提供了一条阻止此类请求的规则,并建议其他人如何创建自定义规则。

New Managed WAF rule for Next.js CVE-2025-29927. | Cloudflare Docs

### 关于 Spring Security 中 CVE-2024-22257 漏洞详情 Spring Security 存在一个身份验证绕过漏洞,编号为CVE-2024-22257。此漏洞源于`AuthenticatedVoter#vote`方法在处理认证参数时未能正确检查null值的情况[^4]。 当应用程序调用`AuthenticatedVoter#vote`并传递null作为认证对象时,该方法错误地返回了true的结果。这使得未授权用户能够通过提供null认证信息来绕过系统的正常访问控制机制,进而可能执行越权操作或获取不应有的权限,甚至窃取系统内部的重要数据。 ```java // 易受攻击的代码片段展示 public int vote(Authentication authentication, Object object, Collection<ConfigAttribute> attributes) { if (authentication == null || !authentication.isAuthenticated()) { return ACCESS_DENIED; } // 如果传入的是null,则此处逻辑判断失误 return ACCESS_GRANTED; } ``` ### 影响范围与风险评估 受影响版本包括但不限于某些特定版本区间内的Spring Security框架实现。由于具体影响版本依赖官方通告更新,在实际环境中应当密切关注供应商发布的补丁说明文档以确认是否受到影响以及如何采取措施加以防范。 ### 修复建议 针对这一安全隐患,推荐开发者遵循如下指导方针: 1. **升级至最新稳定版**:尽快将使用的Spring Security库更新到最新的安全版本,通常新版本会包含对此类已知问题的有效修补程序。 2. **自定义投票器增强校验**:如果无法立即迁移至更高版本,可以在现有项目中重写或扩展默认的身份验证决策管理组件(如`AccessDecisionManager`),确保所有输入都经过严格的非空性和合法性检验后再参与后续流程判定。 3. **加强应用层防护策略**:除了依赖框架自带的安全特性外,还应考虑引入额外的应用级防御手段,比如API网关处设置预检规则过滤掉异常请求头/体结构;或是借助WAF(Web Application Firewall)类产品实施更广泛的流量监控和威胁拦截服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络研究观

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值