IPBUF安全漏洞报告
English
CVE-2025-67716 CVSS 5.7 中危

Auth0 Next.js SDK returnTo参数注入漏洞 (CVE-2025-67716)

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2025-67716
漏洞类型
输入验证漏洞
CVSS评分
5.7 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
Auth0 Next.js SDK

相关标签

输入验证漏洞OAuth注入Auth0Next.js身份认证绕过CVE-2025-67716

漏洞概述

CVE-2025-67716是Auth0 Next.js SDK中的一个输入验证漏洞。该SDK是用于在Next.js应用程序中实现用户身份验证的官方库。漏洞存在于returnTo参数的处理逻辑中,攻击者可以利用此缺陷向Auth0授权请求注入任意的OAuth查询参数。受影响的版本为4.9.0至4.12.1。由于returnTo参数用于在认证成功后重定向用户,攻击者可以通过注入额外的OAuth参数(如scope、prompt等)来改变授权请求的行为。这可能导致认证流程被操纵,令牌被颁发带有意外参数或权限,从而影响应用程序的安全性。攻击成功的关键在于利用Auth0授权服务器对OAuth参数的处理,攻击者可以在授权URL中添加或修改参数值。此漏洞由GitHub安全团队发现并在4.13.0版本中修复。

技术细节

该漏洞的核心是Auth0 Next.js SDK对returnTo参数的验证不足。在OAuth 2.0授权流程中,returnTo参数用于指定认证成功后的回调URL。攻击者可以构造特殊的returnTo URL,在其中注入额外的OAuth查询参数。例如,攻击者可以在回调URL中添加prompt=consent参数,强制Auth0服务器显示同意页面;或者注入scope参数以请求额外的权限。SDK在构建授权请求时,会将returnTo URL的查询参数合并到授权请求中,但缺乏对参数的过滤和验证。这允许攻击者修改OAuth授权请求的行为。攻击者需要诱骗受害者访问恶意链接,受害者的认证会话会被操纵。成功利用后,攻击者可能获取带有意外权限的访问令牌或ID令牌,从而在目标应用程序中获得未授权的访问权限。

攻击链分析

STEP 1
步骤1
攻击者构造包含恶意OAuth参数的returnTo URL,如添加prompt=consent或修改scope参数
STEP 2
步骤2
攻击者通过钓鱼邮件、社交工程或恶意网站诱骗受害者访问构造的攻击链接
STEP 3
步骤3
受害者点击链接后,Auth0 Next.js SDK将恶意参数附加到OAuth授权请求中
STEP 4
步骤4
Auth0授权服务器接收到包含注入参数的授权请求并按参数执行
STEP 5
步骤5
攻击者获取带有意外参数或权限的令牌,可能导致会话被劫持或权限提升

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import urllib.parse # Malicious returnTo URL that injects OAuth parameters malicious_return_to = "https://victim-app.com/callback?prompt=consent&scope=openid%20profile%20email%20offline_access" # Encode the malicious returnTo URL encoded_return_to = urllib.parse.quote(malicious_return_to, safe='') # Construct the attack URL attack_url = f"https://victim-app.com/api/auth/login?returnTo={encoded_return_to}" print(f"Attack URL: {attack_url}") print(f"\nWhen victim clicks this link, the OAuth authorization request will include injected parameters:") print(f"- prompt=consent (forces consent screen)") print(f"- scope extended with offline_access (requests refresh token)")

影响范围

Auth0 Next.js SDK >= 4.9.0 且 < 4.13.0

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:1) 在应用程序层面实现严格的returnTo URL验证,只允许预定义的白名单域名;2) 对returnTo参数进行清理,移除所有非预期的查询参数;3) 限制OAuth授权请求中可接受的参数范围;4) 增加授权流程的监控和日志记录以便及时发现异常行为。

参考链接

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