CVE-2026-8732 (CVSS 9.8) - The WP Maps Pro plugin for WordPress is vulnerable to Privilege Escalation via A
CVE-2026-8732是WordPress WP Maps Pro插件6.1.0及之前版本中的严重权限提升漏洞,CVSS评分9.8。未认证攻击者可利用硬编码nonce和AJAX动作创建管理员账户并完全接管网站。本文提供技术分析、攻击场景及修复建议。
CVE-2026-8732 (CVSS 9.8) - The WP Maps Pro plugin for WordPress is vulnerable to Privilege Escalation via A
📋 漏洞概述
WP Maps Pro插件≤6.1.0版本因AJAX动作权限缺失和硬编码nonce,导致未认证攻击者可创建管理员账户并完全接管网站。
📋 基础信息
| 受影响版本 | WP Maps Pro for WordPress <= 6.1.0 |
| 漏洞类型 | 权限提升 |
| CVSS | 9.8 · Critical |
| CVE | CVE-2026-8732 |
🔬 漏洞根因
插件将AJAX动作wpgmp_temp_access_ajax注册为wp_ajax_nopriv_动作,允许未认证访问。该动作仅通过硬编码于前端JavaScript对象wpgmp_local中的fc-call-nonce nonce进行保护,nonce值所有用户可见,无实际校验意义。处理函数wpgmp_temp_access_support在check_temp=false时无条件调用wp_insert_user()创建硬编码管理员角色用户,并返回魔法登录URL,该URL可触发wp_set_auth_cookie()完成认证。
🎯 攻击场景
1. 攻击者访问任意包含WP Maps Pro插件的前端页面,从页面源码或JavaScript变量wpgmp_local中提取fc-call-nonce值;2. 构造POST请求发送到/wp-admin/admin-ajax.php,action=wpgmp_temp_access_ajax,参数check_temp=false及提取的nonce;3. 服务器响应包含新创建的管理员用户名、密码(推测为空或随机)及魔法登录URL;4. 攻击者访问该魔法登录URL,触发wp_set_auth_cookie(),自动认证为管理员;5. 攻击者获得WordPress管理员后台完全访问权限,可安装插件、修改代码、导出数据等。
💥 漏洞影响
未认证攻击者可远程创建管理员账户并通过魔法链接直接登录,无需交互,完全接管目标WordPress网站,导致数据泄露、恶意代码注入、SEO劫持等灾难性后果。
🛡️ 修复建议
立即升级WP Maps Pro插件至6.1.0以上版本。临时缓解措施:在网站服务器配置中禁用/wp-admin/admin-ajax.php对未认证请求的响应,或通过WordPress函数remove_action移除有问题的AJAX钩子,添加访问控制逻辑验证用户权限而非仅依赖nonce。
📎 参考链接
- https://nvd.nist.gov/vuln/detail/CVE-2026-8732
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-8732
- 原始来源(NVD-Latest)
🚨 威胁评估
| 📈 EPSS 利用概率 | 低 (0.1%) (高于 22.4% 的漏洞) |
| 🚨 CISA KEV | 未被已知利用 |
| 🔧 公开 PoC | 暂无公开 PoC |
⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-05-31 08:09 | 来源: NVD-Latest
🤖 常见问题解答(FAQ)
❓ 如何检测当前WP Maps Pro版本是否受影响?
检查插件版本文件(如wp-maps-pro.php中的Version字段)或WordPress后台插件列表。若版本≤6.1.0且未打补丁,则存在漏洞。也可扫描前端的wpgmp_local JavaScript对象是否存在fc-call-nonce。
❓ 攻击是否留下可追踪的日志或痕迹?
会:wpgmp_temp_access_support调用wp_insert_user()将在wp_users表新增管理员用户,并可能在PHP错误日志留下魔术URL请求记录。此外,新增用户的上次登录时间会异常。防守方应审计近期新增管理员账户及来自陌生IP的admin-ajax.php请求。
❓ 无法升级时如何快速临时修复?
在主题functions.php中添加代码:add_action('init', function(){ if(current_user_can('manage_options')) { remove_action( 'wp_ajax_nopriv_wpgmp_temp_access_ajax', 'wpgmp_temp_access_support' ); } }); 或者通过Web服务器规则(如Nginx if语句或Apache RewriteCond)阻止对admin-ajax.php的POST请求除非来自已登录用户,但需谨慎避免影响合法AJAX功能。