事件概述
荷兰电商安全公司 Sansec 于 9 月 5 日发布紧急通告,披露一条代号 StyleSmuggler 的未认证远程代码执行(RCE)攻击链,影响 Magento Open Source 与 Adobe Commerce。攻击者自 9 月 4 日起利用该漏洞入侵线上商店,安装持久化后门。截至 9 月 6 日,Adobe 尚未发布任何补丁、CVE 编号、官方通告或临时方案,其 Commerce 安全公告索引仍停留在 8 月 11 日的更新。Sansec 表示之所以提前披露,是因为撰写通告期间商店正在被实时入侵。
Sansec 已在干净的 Magento Open Source 2.4.7、2.4.8、2.4.9 安装环境中完整复现该攻击链,确认包括最新 2.4.9 在内的所有当前版本均受影响。首个确认受害者运行 2.4.6-p15,并已应用 Adobe 2026 年 7 月与 8 月安全更新,补丁状态检查结果完全正常,这说明完全打补丁的商店同样会被攻破。Magento 托管与开发公司 Disrex Group 同日独立确认了攻击:其处理的两家被入侵商店分别运行 2.4.8(且部署了 Sansec Shield WAF 并处于启用状态)与 2.4.7-p2(落后当前补丁八个级别),攻击时间均落在首例利用被观测到到首批防御规则上线的约 8 小时窗口内。
技术细节
该攻击链分为两个阶段,核心在于 Magento 模板处理系统。攻击者首先通过 GraphQL 请求操纵 styles 属性,将恶意 PHP 代码注入 Magento 正常运行时生成的文件(如支付失败报告);随后攻击者触发 Magento 发送「Payment Transaction Failed Reminder」邮件,使被污染的内容在服务端渲染时执行,无需收件人打开或接收邮件。
成功利用后,攻击者部署一个约 1.9MB 的静态链接 Rust 植入程序(同时编译 x86-64 与 arm64 版本),存放于站点用户主目录 ~/.local/share/.gvfsd/,而非 Web 可访问目录。该后门伪装为合法 Linux 内核线程 [kworker/u:8:0],通过直接写入 crontab spool 文件实现持久化,每五分钟重新启动一次,并可规避标准日志记录。部分变种不建立外部连接,而是查询站点自身 Redis 实例窃取会话数据,以绕过网络层监控。
影响评估
- Adobe 尚未分配 CVE 编号与 CVSS 评分,但未认证 RCE 通常对应 Critical 级别(业界估计 9.0 以上)。
- 利用不依赖补丁状态:带商业 WAF、接近最新版本的商店与 13 个月未更新的商店均被攻破。
- Magento 后门是 Magecart 类数字信用卡侧录攻击的主要入口,攻击者可向结账页注入 JavaScript、窃取支付数据并批量导出客户信息。
- Magento 驱动全球约 0.5%-1% 的网站及大量中型电商,属于面向互联网的高暴露面组件。
修复建议
在 Adobe 发布官方补丁前,Sansec 提供的临时缓解措施是暂时禁用 GraphQL:经典 Luma 与 Hyvä 主题前台通常不依赖 GraphQL,可直接禁用;Headless 与 PWA 架构必须使用 GraphQL,这类商店应在边缘或 WAF 层部署规则,对 GraphQL 查询限速、检测并阻断异常请求(Disrex 已公开基于真实攻击流量的 Apache 规则,建议先在测试环境验证)。
所有 Magento/Adobe Commerce 运营者应立即排查是否已被入侵,Sansec 公布的主机侧检测命令如下:
crontab -l | grep -i gvfsd
ls -la ~/.local/share/.gvfsd/ /tmp/.kw_* /tmp/.gvfsd-* 2>/dev/null
ps -eo pid,comm,args | grep -i kworker
grep -rl 'X_TRACE_' var/report/
同时建议:轮换所有可能泄露的凭据;在服务器层面禁用 proc_open 并以 noexec 方式挂载临时目录以阻断载荷执行;社区非官方补丁(Disrex、ProxiBlue、Graycore)仅加固部分类,不能视为完整修复。Adobe 下一次定期安全发布为 9 月 8 日,尚不确定是否覆盖该漏洞,运营者应密切关注。