2021 年 11 月 11 日,Wordfence 威胁情报团队针对我们在“Photoswipe Masonry Gallery”中发现的一个漏洞启动了负责任的披露流程,这是一个安装在 10,000 多个站点上的 WordPress 插件。此漏洞使经过身份验证的攻击者可以注入恶意 JavaScript,每当站点管理员访问 PhotoSwipe 选项页面或用户访问带有插件创建的图库的页面时,该恶意 JavaScript 就会执行。
由于 Wordfence 防火墙的内置跨站点脚本 (XSS) 保护,所有 Wordfence 用户,包括我们的免费、高级、关怀和响应产品的用户都可以免受针对此漏洞的攻击。
我们试图在 2021 年 11 月 11 日与开发者日联系
那天我们发现了这个漏洞。经过几次跟进后,我们从未收到任何回复,因此我们于 2021 年 11 月 20 日将完整的详细信息发送给了 WordPres.org 插件团队。该插件已于 2022 年 1 月 14 日完全修补。
我们强烈建议您确保您的网站已更新到“Photoswipe Masonry Gallery”的最新修补版本,在本文发布时版本为 1.2.18。
描述:经过身份验证的存储跨站点脚本
受影响的插件:Photoswipe Masonry Gallery
插件蛞蝓:photoswipe-masonry
插件开发商:网页设计黄金海岸
受影响的版本:<= 1.2.14
CVE ID:CVE-2022-0750
CVSS 分数:6.4(中等)
CVSS 矢量:CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
研究员:Chloe Chamberland
完全修补版本:1.2.15
Photoswipe Masonry Gallery 是一个插件,旨在使用可以添加到 WordPress 页面和帖子的默认 WordPress 画廊构建器来增强画廊创建。与 WordPress 存储库中可用的许多其他插件一样,此插件能够为插件设置常规选项。这些设置转换为网站所有者选择创建的任何图库,包括图像的缩略图宽度和高度以及许多其他设置。不幸的是,这个插件有一个漏洞,使攻击者可以修改这些设置。
深入研究,该插件注册了一个 admin_menu 操作,该操作与控制保存插件设置的更新功能挂钩。
add_action('admin_menu', array('photoswipe_plugin_options', 'update'));
与 WordPress 中的其他几个管理样式挂钩(如 wp_ajax、admin_post 和 admin_init)一样,admin_menu 挂钩会在加载挂钩函数之前检查用户是否正在访问站点的管理区域。但是,它不会验证访问管理区域的用户是否是管理员用户。admin_menu 操作执行此操作以将其他菜单页面添加到 WordPress 站点的管理区域。这意味着访问易受攻击站点的 /wp-admin 区域的经过身份验证的用户将触发挂钩并最终执行与挂钩相关联的功能。在这种情况下,这是更新功能。
由于更新功能没有自己的能力检查或随机数检查,任何访问易受攻击站点的 /wp-admin 区域的经过身份验证的用户都可以发送一个 POST 请求,并将 photoswipe_save 设置为 true 并更新插件的设置.
代码语言:javascript复制public static function update() {
if(isset($_POST['photoswipe_save'])) {
$options = photoswipe_plugin_options::pSwipe_getOptions();
$options['thumbnail_width'] = stripslashes($_POST['thumbnail_width']);
$options['thumbnail_height'] = stripslashes($_POST['thumbnail_height']);
$options['max_image_width'] = stripslashes($_POST['max_image_width']);
$options['max_image_height'] = stripslashes($_POST['max_image_height']);
考虑到 thumbnail_width、thumbnail_height、max_image_width 和 max_image_height 参数没有清理或验证,攻击者可以将恶意 JavaScript 注入插件的设置中,这将导致恶意 JavaScript 在管理员访问插件设置页面或用户访问画廊时执行用插件创建的。此恶意 JavaScript 可用于将访问图库的站点访问者重定向到恶意域以进一步感染或在管理员访问包含恶意负载的页面时注入新的管理用户帐户。因此,请务必尽快确认您的网站已更新到最新版本。
时间线
2021 年 11 月 11 日——插件分析的结论导致在“Photoswipe Masonry Gallery”插件中发现存储的跨站点脚本漏洞。我们验证 Wordfence 防火墙是否提供了足够的保护。我们尝试与开发者联系。
2021 年 11 月 30 日 – 在开发人员没有回应后,我们将完整的披露细节发送给 WordPress 插件团队。他们承认报告并与开发商联系。
2022 年 1 月 4 日——我们跟进插件团队,询问有关易受攻击功能的缺失功能检查。他们通知我们,他们已经让开发人员知道,他们将在月底发布。
2022 年 1 月 14 日 – 插件的完整补丁版本作为 1.2.15 版本发布。
结论
在今天的帖子中,我们详细介绍了“Photoswipe Masonry Gallery”插件中的一个漏洞,该漏洞使经过身份验证的攻击者可以注入恶意 Web 脚本,只要网站所有者访问 PhotoSwipe 选项页面或使用该插件创建的画廊,这些脚本就会执行,这可能导致完全的网站妥协。此漏洞已在 1.2.15 版本中得到全面修补。
我们建议 WordPress 网站所有者立即验证他们的网站是否已更新到可用的最新修补版本,即本文发布时的版本 1.2.18。