RIPS Technologies 发现 WordPress 与 Automattic 开发的电子商务插件 WooCommerce 存在 安全问题。根据官方统计,该插件下载量已超过四百万次,活跃安装数量也大致相当。
研究人员指出,这里存在两个问题。 第一个问题是:WordPress 为用户设置了不同的角色,而该插件安装后并不会创建自己的身份验证系统,而是沿用 CMS 现有的权限体系。 为此,插件会借助 WordPress 的新功能创建一个新角色,再通过自身的函数限制该角色与 CMS 设置及其他用户之间的交互。
因此,安装 WooCommerce 时会创建一个新的“Shop Manager”(店铺经理)角色,该角色拥有 edit_users 权限。 这一权限允许用户编辑文章,以及 WordPress 上任何其他用户(包括管理员)的个人资料。
看起来,WooCommerce 的开发者提供了一项功能,可防止拥有该角色的用户干预管理员的个人资料。 但由于插件权限管理系统的运作存在缺陷,一旦停用 WooCommerce,针对“店铺经理”的限制功能便会失效,拥有该角色的用户就可以随意修改其他用户的账户。
因此,要可靠地停用该插件,唯一的办法是由管理员将其停用并删除其所有文件。 这就引出了第二个问题。
事实上,RIPS Technologies 的分析人员发现了一个与删除 WooCommerce 3.4.5 及更早版本文件有关的漏洞。结果表明,拥有 Shop Manager 权限的用户可以删除插件中的任何文件,包括对其运行至关重要的文件。此后,插件将无法正常运行,WordPress 会自动将其停用,情况又回到前面所述的状态:拥有店铺经理角色的用户可以修改任何用户的个人资料。
研究人员解释说,在这种情况下,攻击者可以轻而易举地夺取管理员账户,进而控制整个网站。 下方视频演示了这两个问题在该案例中的组合利用。
专家指出,攻击者要成功利用这一漏洞,必须能够访问拥有店铺经理角色的账户。 不过,研究人员表示,借助 XSS 漏洞或网络钓鱼攻击,这是可以做到的。
WooCommerce 的开发者已发布插件新版本(3.4.6)修复了该问题。由于插件完全不会自动更新,专家建议用户检查更新,并确保使用的是最新版本的 WooCommerce。