CVE-2026-5032W3 Total Cache插件在所有版本(包括2.9.3及以下)中存在严重的信息泄露漏洞。该漏洞源于插件在检测到请求的User-Agent头包含“W3 Total Cache”时,会绕过整个输出缓冲和处理管道。这导致原始的mfunc/mclude动态片段HTML注释(包括W3TC_DYNAMIC_SECURITY安全令牌)直接渲染在页面源代码中。未经身份验证的攻击者可以通过发送特制的User-Agent头到包含开发者放置的动态片段标签的页面来获取W3TC_DYNAMIC_SECURITY常量的值。一旦获取该令牌,攻击者可以构造有效的mfunc标签在服务器上执行任意PHP代码,从而实现远程代码执行。
该漏洞的核心逻辑在于W3 Total Cache对特定User-Agent的异常处理机制。当插件检测到User-Agent包含“W3 Total Cache”字符串时,它错误地绕过了正常的输出缓冲和安全处理管道。这一行为导致原本应被解析或隐藏的动态片段标签(如`<!--mfunc ...-->`及其内部的`<!--mclude ...-->`)直接以明文形式渲染在HTML响应中。关键在于,这些动态片段内部包含了用于验证请求合法性的`W3TC_DYNAMIC_SECURITY`安全令牌。攻击者利用这一缺陷,首先通过修改HTTP请求头,访问网站中包含开发者放置的动态片段标签的页面,从返回的源代码中正则匹配提取出该令牌。一旦获取了有效的安全令牌,攻击者便可以绕过插件的校验机制,构造包含恶意PHP代码的`<!--mfunc-->`标签。当服务器处理这些标签时,会执行其中的PHP代码,从而使攻击者获得服务器端的远程代码执行权限。