OAuth2-Proxy 高危漏洞(CVE-2025-54576,CVSS 9.1)可被利用查询参数绕过身份验证

阅读量21495

发布时间 : 2025-08-01 17:24:06

x
译文声明

本文是翻译文章,文章原作者 Ddos,文章来源:securityonline

原文地址:https://securityonline.info/critical-oauth2-proxy-flaw-cve-2025-54576-cvss-9-1-allows-authentication-bypass-via-query-parameters/

译文仅供参考,具体内容表达以及含义原文为准。

在广泛使用的开源身份验证工具 OAuth2-Proxy 中,近日发现一项严重漏洞,允许攻击者通过操纵查询参数绕过身份验证保护机制。该漏洞编号为 CVE-2025-54576,CVSS 评分高达 9.1,凸显其对受 OAuth2 保护的 Web 应用程序构成的重大安全威胁。

OAuth2-Proxy 通常用于保护 Web 应用程序安全,可作为反向代理或中间件组件,重定向用户请求至 OAuth2 或 OIDC 提供方进行身份验证,能够轻松集成至负载均衡器或 Kubernetes Ingress 控制器等现有基础设施中。

该工具为基于 OAuth2 / OIDC 的认证机制提供了一种简单且安全的实现方式,可灵活部署为独立的反向代理服务,或与现有反向代理、负载均衡架构集成。

此次安全漏洞出现在 skip_auth_routes 配置选项中。该选项允许开发人员使用正则表达式定义可绕过身份验证检查的 URL 路由。然而,OAuth2-Proxy 在实际执行匹配时错误地将正则表达式应用于整个请求 URI(包括路径和查询参数),而非仅限于 URL 路径部分,违背了其官方文档所述行为。

这一缺陷使得攻击者可通过构造特定的查询参数来触发正则匹配,即使基础路径本应受到身份验证保护,也可被绕过。

安全公告指出:“该问题源于 skip_auth_routes 匹配逻辑错误,其匹配对象为完整请求 URI(路径 + 查询参数),而非文档中所描述的仅限路径部分。”

攻击者可滥用该漏洞,利用过于宽泛的正则表达式规则构造特定 URL,实现身份验证绕过。例如:

配置示例:skip_auth_routes = [ "^/foo/.*/bar$" ]

原本预期行为:仅允许访问 /foo/something/bar

实际漏洞表现:也允许访问 /foo/critical_endpoint?param=/bar

此类攻击在后端服务会忽略或容忍异常查询参数的情况下尤其有效。

报告指出:“在使用包含通配符或广泛匹配模式的 skip_auth_routes 正则表达式配置中,部署系统所面临的风险最高”,尤其是在“后端服务对未知查询参数不加限制”的情况下。

该漏洞已在 OAuth2-Proxy v7.11.0 版本中得到修复,强烈建议受影响用户立即升级。

对于暂时无法升级的用户,安全公告提供了以下几项临时缓解措施:

  • 审查正则表达式配置:全面审计 skip_auth_routes 配置中是否存在过于宽松的匹配规则;

  • 使用精确匹配路径:尽可能用精确路径替代通配符模式;

  • 使用锚点限定规则范围:确保正则表达式正确使用起始符 ^ 和结束符 $,限制匹配范围;

  • 仅匹配路径部分:考虑实施自定义验证逻辑,在正则匹配前去除查询参数,仅对路径进行匹配。

安全配置示例:

# 替代使用 "^/public/.*"
# 建议使用更具体的路径匹配方式:
skip_auth_routes = [
"^/public/assets$",
"^/public/health$",
"^/api/status$"
]
本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+14赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66