IPBUF安全漏洞报告
English
CVE-2026-5428 CVSS 6.4 中危

CVE-2026-5428 Royal Elementor插件存储型XSS漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-5428
漏洞类型
存储型跨站脚本攻击 (Stored XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Royal Elementor Addons (WordPress Plugin)

相关标签

XSSStored XSSWordPressWordPress PluginCVE-2026-5428Royal Elementor

漏洞概述

WordPress的Royal Elementor Addons插件在1.7.1056及之前版本中存在严重的存储型跨站脚本(XSS)漏洞。该漏洞源于Image Grid/Slider/Carousel小部件在渲染图片缩略图时,对alt属性的输出转义处理不当。具体来说,`render_post_thumbnail()`函数错误地使用了`wp_kses_post()`而非`esc_attr()`,导致具有作者及以上权限的认证攻击者能够通过图片标题注入恶意脚本。当其他用户访问包含该恶意图片的页面时,脚本将在其浏览器中执行,可能导致账户被劫持或敏感信息泄露。

技术细节

该漏洞的技术核心在于WordPress插件开发中常见的上下文转义错误。在`modules/media-grid/widgets/wpr-media-grid.php`文件的`render_post_thumbnail()`函数中,代码需要输出图片的alt属性。正确的做法是使用`esc_attr()`函数来确保属性值中的特殊字符(如双引号、尖括号)被转义为HTML实体,从而防止闭合标签或注入事件处理器。然而,开发者使用了`wp_kses_post()`,该函数主要用于过滤富文本内容(允许部分HTML标签)。这导致攻击者可以在图片的“标题”或“替代文本”字段中输入诸如`"><script>alert(1)</script>`或`onerror=alert(1)`的Payload。由于未进行属性转义,这段代码会被直接写入HTML的alt属性中,导致浏览器解析并执行JavaScript代码,形成存储型XSS。

攻击链分析

STEP 1
步骤1:权限获取
攻击者注册或获取一个具有Author(作者)级别及以上权限的WordPress账户。
STEP 2
步骤2:Payload注入
攻击者编辑媒体库中的图片,或将Image Grid小部件添加到页面,在Image Caption或Alt Text字段中输入恶意的JavaScript代码。
STEP 3
步骤3:存储Payload
保存更改。由于过滤函数错误,恶意脚本被完整存储在数据库中。
STEP 4
步骤4:触发漏洞
当管理员或普通用户访问包含该Image Grid的页面时,服务器渲染包含恶意代码的HTML。
STEP 5
步骤5:执行攻击
受害者的浏览器解析HTML并执行注入的脚本,攻击者可借此窃取Cookie或进行进一步操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC: Inject the following payload into the Image Caption or Alt Text field within the Image Grid widget settings. --> "><script>alert(document.cookie);</script> <!-- Alternative Payload using event handler (if tag closing is filtered): --> " onerror="alert('CVE-2026-5428')

影响范围

Royal Elementor Addons <= 1.7.1056

防御指南

临时缓解措施
如果无法立即升级插件,应暂时禁用Royal Elementor Addons插件中的Image Grid、Slider和Carousel小部件功能,或者严格限制内容发布权限,确保只有受信任的管理员可以编辑图片属性。同时,定期审查站点源代码,检查是否存在异常的script标签。

参考链接

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