Avada主题CVE-2026-18431拆解:未授权文件写入如何变成RCE

admin 2026-09-11 04:54:56 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Avada主题与FusionBuilder组合存在CVE-2026-18431漏洞,CVSS9.8,未授权攻击者可实现任意文件写入并远程执行代码。漏洞链涉及权限缺失、输入验证缺陷及文件写入限制失效。修复需同时升级Avada至7.16.1和FusionBuilder至3.16.1。建议优先升级,辅以WAF规则、限制uploads目录PHP执行等缓解措施,并排查异常文件与账户。 综合评分: 90 文章分类: 漏洞分析,WEB安全,代码审计


Avada 主题 CVE-2026-18431 拆解:未授权文件写入如何变成 RCE

cwbird cwbird

bird网络安全

2026年9月9日 09:58 四川

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

8 月 26 日,Avada 主题的一条漏洞记录进入 CVE 数据库:CVE-2026-18431,CVSS 3.1 基础分 9.8,向量 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H。攻击者无需账号、无需交互,向公开端点发一个请求就能在服务器上落地 PHP 文件并执行。Avada 是 ThemeFusion 出品的付费主题,累计销量超过 90 万份(ThreatAft 统计口径),长期占据商业主题销量第一,Fusion Builder 又是它的必装依赖,这次披露实际把数十万量级的 WordPress 站点拉进了攻击面。国内探知安全在 8 月 31 日的漏洞预警里做了通报,口径同样是「影响面覆盖百万级」。

一条链,两个组件,三处缺陷

多数 WordPress 漏洞是单点的:某个 AJAX 端点漏了 nonce(一次性令牌)校验,或者某个短代码处理函数没过滤输入。CVE-2026-18431 的特殊之处在于缺陷横跨主题和插件两个组件,发现方 Wordfence 把它归为 CWE-862 授权缺失,叠加输入验证缺陷。

Avada 主题负责输出页面,Fusion Builder(3.16 及以前版本)负责处理构建器数据,接收 WordPress AJAX 和 REST 请求。漏洞链分三段:

  1. 公开端点收到请求后,把数据传递给本应只面向管理员的受限功能,中间缺少 capability(权限能力)检查和 nonce 校验;
  2. 受限功能在处理内部可信状态时被构造过的数据操纵,触达文件写入操作;
  3. 文件写入环节对路径和文件名的约束失效,写入位置和内容都由请求方控制。

三段里任何一段单独看都可能被认为问题不大:一个端点没校验权限,在隔离测试里也许只造成信息泄露;一个文件写入函数没锁死目录,在有权限校验保护时也够用。组合起来,未授权攻击者拿到了任意路径任意内容的写文件能力。WordPress 的 PHP 文件放在 webroot 内,写进去一个 .php 后缀的文件,下一次 HTTP 请求就能触发执行,文件写入原语到 RCE(远程代码执行)之间没有任何额外屏障。

修复版本也体现了两处都要改:Avada 7.16.1 和 Fusion Builder 3.16.1,只升级其中一个,链没有断。Wordfence 公告明确写着,成功利用需要两个组件同时安装并激活。

9.8 分的成色:NVD 口径与复评口径的分歧

官方 9.8 来自标准向量:网络可达(AV:N)、攻击复杂度低(AC:L)、无需权限(PR:N)、无需用户交互(UI:N),机密性完整性可用性全部高影响。按 CVSS 计分规则这套组合就是 9.8,算法上挑不出毛病。

漏洞情报平台 vuln.today 在 NVD 数据之外做了一次独立复评,给分 8.1(高危),差异在攻击复杂度:AC 从 L 提到 H。理由有两个。其一,利用前提除了双组件激活,还需要站点上存在管理员创建的特定内容,这类内容什么时候出现、以什么形式出现,攻击者控制不了,利用窗口因站而异。其二,双组件配合意味着利用代码要对两个组件的版本组合做适配,通用性打折扣。

两种口径都有依据,落地时的判断分情况:新建站、内容少的站点利用难度高;运营时间长、管理员用 Fusion Builder 编辑过大量页面的站点,前置条件大概率满足,按 9.8 对待。

个人观点:CMS 生态里「装机量最大的组件出高危」几乎每年都上演一轮,Avada 这次从文件写入到代码执行没有中间障碍,常见的「uploads 目录禁 PHP 执行」能挡住一部分路径,但写入原语未必局限于 uploads,别把它当万能药。

写入原语的利用路径与检测特征

Rescana 的分析描述了完整路径:攻击者向公共端点发送构造请求,请求被传递到本不面向未授权用户开放的功能,通过操纵受信状态访问管理级文件操作,最后绕过文件处理限制落地 PHP 文件。执行身份是 Web 服务器用户(通常是 www-data 或 php-fpm 运行账户)。拿到这个身份后,读取 wp-config.php 拿数据库凭证、向 wp_users 表插恶意管理员账户、给全站挂重定向,都是常规后续动作。

截至发稿,公开渠道没有可用 PoC(概念验证代码),CISA KEV(已知被利用漏洞目录)也未收录。参照同类漏洞的节奏,公开利用代码出现后 48 到 72 小时内一般会跟上批量扫描。检测上有三个可落地的点:

  • Fusion Builder 相关端点(AJAX action 或 REST 路由)收到未携带有效 nonce 的 POST 请求,本身就是异常信号,正常前端浏览流量不会触达这些 action;
  • webroot 及 wp-content 下出现来源不明的新 .php 文件,文件时间戳与部署窗口对不上;
  • 访问日志里对「刚写入的 PHP 文件」的 GET 或 POST 请求,扫描器批量打点时这个特征非常明显。

防御动作按优先级排

升级优先。Avada 到 7.16.1,Fusion Builder 到 3.16.1,两个都要动。商业主题走 ThemeFusion 自己的更新通道,不经过 WordPress 官方主题库,自动更新默认不开,站点多的团队先盘点资产清单再批量操作。

暂时不能升级的,分层降险。WAF 层启用 Wordfence 针对该漏洞的拦截规则。Web 服务器层把可写目录的 PHP 执行关掉,Nginx 写法:

location ~* ^/wp-content/uploads/.*\.php$ { deny all; }

Apache 写法:

<Directory /var/www/wp-content/uploads> &nbsp; &nbsp; php_admin_flag engine off </Directory>

要说明局限:这条配置只保护 uploads 路径,如果写入原语落到 webroot 其他位置,比如主题目录本身,防护就失效了,vuln.today 的分析同样指出了这一点。彻底断链的办法是停用 Fusion Builder,链上两组件缺一个即不可利用,代价是 Avada 的可视化编辑功能不可用,业务上能不能接受要自己权衡。

事后排查:全盘搜索 webroot 内近一周新增或修改的 .php 文件,重点看 wp-content/uploads、wp-content/themes、wp-content/plugins 三个目录;检查 wp_users 表有没有未知管理员;比对 wp-config.php 的修改时间。发现异常按入侵处置走:重置所有凭证,从已知干净备份恢复,只删 webshell 了事的做法留后患,攻击者插的数据库账户和定时任务不会跟着文件一起消失。

这条漏洞披露至今两周,公开利用代码还没出现,留给升级的时间按天算。Avada 的装机量摆在那里,扫描器作者不会放过这个目标。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:bird网络安全 cwbird cwbird《Avada 主题 CVE-2026-18431 拆解:未授权文件写入如何变成 RCE》

评论:0   参与:  0