超过 700 万个 WooCommerce 网站受到简单 HTML 注入的影响:CVE-2024-9944 分析

超过 700 万个 WooCommerce 网站受影响:CVE-2024-9944 分析

主要风险点

  • 订单确认页面:注入的 HTML 会显示在唯一的订单确认页面 URL 上,攻击者可利用此页面发起钓鱼或社会工程攻击。
  • 新订单确认电子邮件:WooCommerce 管理员收到的订单确认邮件中,也会呈现注入的 HTML,可能导致直接针对管理员的钓鱼攻击。

此漏洞在 WooCommerce 版本 ≤ 9.0.2 中存在,并在 2024 年 7 月发布的 9.1.0 版本中修复。

技术细节和 PoC

攻击者可通过 WooCommerce 的“订单备注”字段注入 HTML 代码,并在以下两个位置执行:
image.png

  1. 订单确认页面:当用户下单后,WooCommerce 生成一个唯一的订单确认页面 URL,该页面会显示注入的 HTML 标签。此 URL 是静态的,攻击者可以分享该链接,并在每次访问时执行注入的 HTML。
    https://pic7.58cdn.com.cn/nowater/webim/big/n_v28d053465d6f74644ab041a516a8aa27e.png

  2. 管理员订单确认邮件:如果 WooCommerce 启用了邮件提醒功能,管理员将收到包含注入 HTML 的邮件,HTML 会在邮件的“备注”部分呈现,影响管理员。

WooCommerce 代码变更

通过对 WooCommerce 9.0.2 和 9.1.0 版本的代码进行比较,发现该漏洞修复了 3 处文件中的代码。

  • 位置 1: templates/order/order-details.php
    image.png

  • 位置 2: templates/emails/email-order-details.php
    image.png

  • 位置 3: templates/emails/plain/email-order-details.php
    image.png

漏洞修复时间线

  • 2024年5月13日:在 WooCommerce 8.8.3 版本中发现漏洞,并通过 HackerOne 向 Automattic 报告。
  • 2024年7月11日:WooCommerce 在 9.1.0 版本中修复了该问题。
  • 2024年8月31日:漏洞报告在 HackerOne 上关闭,标记为已解决。
  • 2024年10月14日:CVE 分配编号。
  • 2024年10月17日:漏洞分析报告发布。

为了缓解该问题,建议立即更新至 WooCommerce 最新版本。