Elementor Pro 4.2.1 及更早版本存在一个由于 Forms 组件文件上传字段导致的未经身份验证的远程代码执行 (RCE) 漏洞;该问题已在 4.2.2 版本中修复,因此运行旧代码的网站应立即升级。

该漏洞的影响

该漏洞的 CVSS 评分为 9.0,这意味着能够访问受漏洞影响网站的攻击者可以在无需登录或提供任何凭据的情况下,在服务器上执行任意 PHP 代码。问题在于 Elementor Pro 处理 Forms 组件中文件上传的方式。该插件运行两个独立的循环:一个用于验证每个上传的文件,另一个用于将文件保存到 Web 可访问的上传目录中。

攻击者可以构造一个包含两个文件的单个请求。第一个文件被赋予一个空名称,这会导致验证循环跳过对其的检查。第二个文件是一个恶意的 PHP 脚本,它会通过第二个循环并被写入公共文件夹。由于 Elementor Pro 使用时间戳为上传的文件命名,攻击者可以预测文件名,随后直接请求该文件以执行代码。

漏洞产生的原因

双循环设计旨在保持验证和存储的独立性,但由于缺乏共享的完整性检查(sanity check),导致“空名称”技巧得以绕过。该漏洞影响所有使用 Forms 组件文件上传字段的安装实例,无论网站所有者是否为访客启用了该功能。

谁面临风险

任何安装了 Elementor Pro 4.2.1 或更早版本的 WordPress 网站都面临风险。由于该漏洞利用不需要身份验证,即使是限制了管理员访问权限的网站也处于危险之中。成功的攻击会让攻击者获得对托管环境的完全控制权,从而导致数据窃取、网站篡改或勒索软件的部署。

当前应采取的措施

  • 使用 WordPress CLI 命令验证已安装的版本:

    wp plugin list --name=elementor-pro --field=version
    
  • 如果输出显示为 4.2.1 或更低版本,请立即更新到 4.2.2 或更高版本。此次更新将存在缺陷的上传逻辑替换为单一的、原子化的“验证并保存”程序,从而封堵了空名称绕过的漏洞。

  • 升级后,请审计上传目录,查找任何符合插件所用时间戳模式的 PHP 文件并将其删除。

  • 在应用补丁之前,请考虑禁用公共表单上的文件上传字段,尤其是在高流量网站上。

反方观点

一些开发者认为风险是有限的,因为漏洞利用要求 Forms 组件必须配置了可公开访问的文件上传字段。然而,许多基于 Elementor 的网站都会公开此类表单用于联系、职位申请或用户生成内容,这使得该条件非常普遍,因此该漏洞被视为严重漏洞。

后续关注事项

随着更多网站报告攻击尝试,安全研究人员预计会出现更多的安全公告。请密切关注 Elementor 的官方通知和权威漏洞数据库,以获取任何后续补丁或缓解措施。

总结: Elementor Pro 4.2.1 及更早版本的 RCE 漏洞是一个高严重性、无需登录的攻击向量。更新到 4.2.2 是唯一可靠的防御手段;推迟更新会使您的服务器和数据面临严重风险。