知名 WordPress 插件 Gravity Forms 遭遇疑似供应链攻击,其官网提供的手动安装包被植入后门。
Gravity Forms 是一款付费插件,用户可用于创建联系表单、支付表单等多种在线表单。根据官方统计数据,该插件目前部署于约 100 万个网站上,其中包括 Airbnb、Nike、ESPN、联合国儿童基金会(UNICEF)、Google 以及耶鲁大学等知名组织。
插件被植入远程代码执行后门
WordPress 安全公司 PatchStack 表示,今天早些时候他们收到报告,称从 Gravity Forms 官网下载的插件在运行过程中产生了异常网络请求。
在分析过程中,研究人员确认他们从官方渠道下载到的插件文件中包含恶意内容,具体位于 gravityforms/common.php
文件内。进一步检查发现,该文件会向可疑域名 gravityapi.org/sites
发起 POST 请求。
此外,插件还会收集大量网站元数据,如网址、后台地址、主题、已安装插件列表、PHP 和 WordPress 版本等,并将这些信息传输至攻击者控制的服务器。随后服务器返回经过 base64 编码的 PHP 恶意代码,保存为 wp-includes/bookmark-canonical.php
文件。
这段恶意代码伪装成 WordPress 内容管理工具,实际上是一段无需身份验证即可触发的远程代码执行后门。其通过 handle_posts()、handle_media()、handle_widgets()
等函数在初始化期间被调用,并最终通过 eval()
执行用户输入的恶意代码。
PatchStack 警告:“这些函数可以由未认证用户通过 __construct -> init_content_management -> handle_requests -> process_request
这一执行链触发,进而实现远程代码执行。”
RocketGenius 回应并发布善后公告
Gravity Forms 的开发商 RocketGenius 在获悉问题后确认,受影响的仅为 7 月 10 日至 11 日 期间,通过 手动下载或 composer 安装方式 获取的 Gravity Forms 版本 2.9.11.1 和 2.9.12。
RocketGenius 强调,Gravity Forms 插件内置的 Gravity API 服务(用于许可管理、自动更新和插件安装)未受到此次攻击影响。通过该服务下载安装的插件包均为安全版本。
不过,恶意代码在感染网站后会执行多项操作,包括:
-
阻止插件自动更新
-
连接攻击者服务器下载额外恶意负载
-
创建具有完全权限的管理员账号,以控制整站
开发方建议所有在此期间下载或安装过相关版本插件的管理员立即重新安装干净版本,并使用特定方法检查网站是否存在感染迹象。据 PatchStack 分析,攻击所用的相关恶意域名注册于 7 月 8 日。
安全建议
-
管理员应尽快替换受感染版本的插件
-
使用安全扫描工具检查网站文件完整性和异常管理员账号
-
避免通过不受信渠道手动下载插件包
此次事件凸显了 WordPress 插件供应链风险的现实威胁,也再次提醒开发者和站点运营者需高度警惕手动安装包的安全性。
发表评论
您还未登录,请先登录。
登录