CVE-2025-13035CVE-2025-13035是WordPress Code Snippets插件中的一个高危安全漏洞,CVSS评分8.0。该漏洞影响3.9.1及以下所有版本,允许具有Contributor级别权限的认证攻击者在特定条件下执行任意PHP代码。漏洞的根本原因在于插件在处理短代码属性时不当使用了PHP的extract()函数,该函数会将数组中的键值对提取为变量,攻击者可以通过构造特定的短代码属性来覆盖关键变量如$filepath,进而利用require_once语句包含恶意文件实现代码执行。此漏洞的利用需要管理员先启用"Enable file-based execution"设置,并存在至少一个活动的内容片段,这增加了攻击的复杂性但并未消除严重风险。
漏洞存在于Code Snippets插件的evaluate_shortcode_from_flat_file方法中。该方法在处理[code_snippet]短代码时,会从短代码属性中提取参数并使用extract()函数将其转换为变量。由于插件未对输入进行严格过滤,攻击者可以构造恶意的属性参数来覆盖$filepath变量。当这个被篡改的$filepath被传递给require_once语句时,攻击者可以强制包含任意文件或触发PHP代码执行。结合PHP filter chains技术,攻击者可以将文件包含转化为任意代码执行。具体来说,攻击者需要创建一个带有恶意payload的短代码,利用extract()覆盖关键路径变量,然后通过require_once包含精心构造的文件路径,最终在服务器上执行任意PHP代码。此漏洞的利用前提是管理员必须启用Enable file-based execution设置。