ZCyberNews
English
漏洞9 分钟阅读

WordPress 供应链攻击通过 Flippa 销售感染 30 余款插件

一名恶意买家利用 Flippa 市场收购了一家插件开发商,向安装量达数十万的 30 多款 WordPress 插件中注入后门,以部署隐藏的 SEO 垃圾内容。

WordPress 供应链攻击通过 Flippa 销售感染 30 余款插件

Indicators of Compromise (1)

Type Value DescriptionConf
IP2.6.9.1Extracted from source materialhigh

一起重大的 WordPress 供应链攻击已波及超过 30 款插件,涉及数十万活跃安装量。此次事件源于攻击者通过 Flippa 市场收购了一家合法的开发者业务。新所有者仅被称为“Kris”,其注入了一个复杂的后门,该后门潜伏八个月后激活,发起了一场向网站注入 SEO 垃圾内容的攻击活动,这些内容对网站所有者隐藏,但对搜索引擎可见。WordPress.org 因此在一天内永久关闭了所有受影响的插件。该事件凸显了开源插件生态系统中的一个关键漏洞:所有权变更可能引入恶意代码,却不会触发安全审查。

核心插件后门与攻击链剖析

此次攻击始于 2025 年 8 月 核心插件 的出售,该实体原名为 WP Online Support,后进行了品牌重塑。买家对插件仓库的首次提交,伪装成针对 WordPress 6.8.2 的兼容性更新,实则引入了一个远程代码执行后门。根据取证分析,像 Countdown Timer Ultimate 这类插件的 2.6.7 版本,向一个名为 class-anylc-admin.php 的文件中添加了 191 行恶意代码。

该后门通过一个名为 wpos-analytics 的模块运作,该模块此前曾作为合法的分析数据选择加入系统。新代码建立了三个关键组件:

  1. 一个 fetch_ver_info() 方法,使用 file_get_contents() 从攻击者控制的域名 analytics.essentialplugin.com 获取数据,并将响应传递给 @unserialize()
  2. 一个 version_info_clean() 方法,旨在执行结构为 @$clean($this->version_cache, $this->changelog) 的函数调用,其中函数名和参数完全由反序列化的远程数据控制。
  3. 一个未经身份验证的 REST API 端点,注册时使用 permission_callback: __return_true,为远程触发提供了直接途径。

这种设置形成了一个典型的任意函数调用漏洞。该后门一直处于非活动状态,直到 2026 年 4 月 5 日至 6 日,命令与控制服务器开始分发恶意载荷。该载荷是一个名为 wp-comments-posts.php 的文件——故意拼错核心 WordPress 文件 wp-comments-post.php——该文件被下载并执行。其主要操作是将一大段经过混淆的 PHP 代码直接注入网站的 wp-config.php 文件。这种持久化机制确保了入侵在插件更新后依然存在。

影响及利用以太坊智能合约的新型 C2 技术

注入到 wp-config.php 中的代码促成了大规模的 SEO 垃圾内容操作。它从 C2 服务器获取链接、重定向和虚假页面内容,并仅将这些内容展示给被识别为 Googlebot 的用户代理,使得普通网站访问者和管理员无法察觉此次入侵。这种被称为“伪装”的技术,旨在操纵搜索引擎排名而不惊动网站所有者。

该活动在技术层面最显著的特点是其对关停的抵御能力。研究人员发现,恶意软件通过公共区块链 RPC 端点查询以太坊智能合约来解析其 C2 域名。这种方法意味着攻击者可以随时更新智能合约以指向新的域名,从而使传统的域名扣押或关停请求失效。该基础设施的灵活性给防御者带来了重大挑战。

入侵规模巨大。WordPress.org 插件团队于 2026 4 月 7 日永久关闭了来自 核心插件 作者的至少 30 款免费插件。这些插件功能涵盖滑块、倒计时器、图库和常见问题解答等,总计代表着数十万的活跃安装量。任何在 2026 年 4 月之前未更新这些插件的网站都可能受到初始感染。关键的是,尽管 WordPress.org 在 4 月 8 日强制自动更新到 2.6.9.1 版本以中和插件的“回连”功能,但此更新并没有移除 wp-config.php 中的恶意注入。受感染的网站在插件更新后仍然处于活跃感染状态,需要手动修复。

检测指标与手动修复步骤

防御者应立即清点其 WordPress 安装中是否包含来自受影响的核心插件产品组合的任何插件。已关闭的插件包括但不限于:

  • accordion-and-accordion-slider
  • album-and-image-gallery-plus-lightbox
  • countdown-timer-ultimate
  • popup-anything-on-click
  • sp-faq
  • sp-news-and-widget
  • timeline-and-history-slider
  • wp-blog-and-widgets
  • wp-testimonial-with-widget

WordPress.org 的强制更新添加了 return; 语句来短路恶意函数,但 wpos-analytics 模块仍然存在。彻底的清理需要完全移除该模块。管理员可以通过以下方式创建修补版本:

  1. 从插件文件夹中删除 /wpos-analytics/ 目录。
  2. 移除主插件 PHP 文件中的加载器函数块(通常可通过类似“Plugin Wpos Analytics Data Starts”的注释或名为 wpos_analytics_anl 的函数来识别)。
  3. 递增插件头中的版本号。

最关键的检测步骤是检查 wp-config.php 文件。恶意软件在 require_once ABSPATH . 'wp-settings.php'; 所在行的同一行追加了大约 6KB 的混淆代码。简单的文件大小检查即可发现问题;干净的 wp-config.php 通常约为 3-4KB,而受感染的文件会膨胀到超过 9KB。如果存在此注入,网站需要进行全面的安全审计,因为该后门可能已被用于部署额外的载荷。历史上的 C2 域名 analytics.essentialplugin.com 现在返回 {"message":"closed"},但日志中任何指向该主机的出站连接都是明确的入侵指标。

WordPress 生态系统防御的关键要点

  • 立即审计受影响插件并检查 wp-config.php 系统管理员必须扫描所有托管的 WordPress 站点,查找列出的核心插件标识符。仅更新插件是不够的;必须手动检查 wp-config.php 文件是否被追加了恶意代码,任何感染都需要进行全面的清理。
  • 将插件所有权变更视为安全风险。 此次攻击与[2017 年的事件]([wordpress plugin supply chain attack])类似,当时一个被购买的插件被武器化。WordPress.org 生态系统目前缺乏标记或审查插件所有权变更的机制。组织应监控关键插件的提交历史和作者变更,因为维护者的突然变更可能预示着供应链攻击。
  • 实施强健的备份和文件完整性监控。 此次攻击是通过详细的备份取证发现的,通过比较每日快照中 wp-config.php 文件的大小来识别。保持频繁、不可变的备份,并对 wp-config.php 等核心文件实施文件完整性监控,对于检测未经授权的修改和实现精确恢复至关重要。
  • 发现感染即假设已失陷并进行全面调查。 wp-config.php 注入的存在表明后门曾经活跃。防御者应假设攻击者拥有不受限制的访问权限,并搜索在入侵窗口期内可能安装的额外后门、未经授权的管理员用户或其他恶意脚本。

订阅更新

将最新的网络安全资讯直接发送到您的邮箱。

标签:#wordpress#supply-chain-attack#flippa#essential-plugin#wp-online-support#seo-spam#backdoor#plugin-vulnerability

相关文章