文章总结: WordPressDevKitPro插件存在CVE-2026-14378认证绕过漏洞,CVSS9.8,影响版本2.3.0及以下。漏洞源于revertswitch处理器错误信任攻击者可控的originaluser_idCookie,未认证攻击者可获取管理员会话,实现整站接管。建议立即升级至2.3.1,或通过WAF拦截相关Cookie请求,并检查管理员账号异常登录。
综合评分: 88
文章分类: 漏洞分析,WEB安全,红队
(9.8分) CVE-2026-14378:WordPress DevKit Pro 未登录管理员接管
红队安全圈
红队安全圈
红队安全圈
2026年10月2日 21:53
重庆
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
DevKit Pro 插件的 revert_switch 流程信任攻击者可控的 Cookie,未登录即可直接领一个管理员的登录态,CVSS 9.8,拿下整站。
01 引言
WordPress 的 DevKit Pro 插件(dplugins 出品的开发者工具类插件)曝出一个 CVSS 9.8 的认证绕过漏洞,编号 CVE-2026-14378,10 月 1 日公开。所有版本直到 2.3.0 都中招。
危害描述很简单粗暴:未认证的攻击者可以把 Cookie 里的 original_user_id 设成任意管理员的用户 ID,然后从页面公开输出的 nonce 里拿到通行证,POST 回 revert_switch 处理器,插件就会调用 wp_set_auth_cookie() 给你签发一个管理员的登录会话——整站直接易主。
这类前端用户切换(user switching)功能本来是给开发者切回去还原视图用的,结果身份校验做错了对象,变成了任何人都能指定我要变成谁。
02 漏洞速览
漏洞编号CVE-2026-14378
影响产品DevKit Pro 插件
影响版本<= 2.3.0
修复版本2.3.1
漏洞类型认证绕过 / 管理员接管
危害等级CVSS 9.8(Critical)
利用门槛未认证即可利用
公开 PoC暂无完整公开 PoC
03 漏洞成因
根因是 revert_switch 处理器把攻击者可控的 original_user_id Cookie 当成了特权身份来校验:
一是 verify_nonce_and_capability() 本意是校验当前操作者是不是有 manage_options 权限的管理员,但它查的是 Cookie 里指定的那个用户 ID 的能力,而不是真正发起请求的用户——没有用 current_user_can() 校验请求者本人。
二是只要这个 Cookie 存在,切回(switch back)表单和一个合法的、绑定会话的 nonce 会通过 wp_footer 公开渲染给任何访客——包括未登录用户。
两件事拼在一起就是完整攻击链:
-
攻击者带着 original_user_id=<管理员ID> 的 Cookie 访问站点;
-
页面 footer 会公开吐出一个合法 nonce;
-
攻击者拿着这个 nonce POST 回 revert_switch;
-
插件校验 Cookie 指向的用户是否是管理员——是的,管理员,校验通过;
-
wp_set_auth_cookie(管理员ID) 被调用,攻击者拿到管理员会话。
经典的校验对象搞错:该验我是谁,却验了我想变成谁。
04 影响范围
受影响:DevKit Pro 所有版本 <= 2.3.0。
已修复:2.3.1。
前提:站点安装并启用了 DevKit Pro 插件。
05 危害推演
这个漏洞目前没有公开的完整 PoC,但从成因可以推演出攻击路径:
侦察:搜索目标站是否加载 devkit 相关脚本或特征(前端切回表单出现即可确认)。
置 Cookie:请求时带上 original_user_id=1(管理员 ID 通常是 1)。
收 nonce:直接看 HTML 里 wp_footer 输出的切回表单,提取其中的 nonce 字段。
回传:向 revert_switch 的处理端点 POST nonce + original_user_id。
登录态到手:响应设置的管理员 auth cookie,直接登录 wp-admin。
注意 nonce 是绑定会话的——但对未认证攻击者来说,那个 nonce 恰恰就是公开发给未认证会话的,所以反而没有防线作用。这正是设计崩坏的地方:nonce 只能证明这个请求来自看到表单的人,而表单对谁都可见。
06 检测与排查
判断自己是否受影响:站点装了 DevKit Pro 且版本 <= 2.3.0 即受影响。快速确认插件版本:
curl -s https://目标站/wp-content/
plugins/devkit/readme.txt \
| grep -i stable
再摸一下前端是否输出切回表单:带 original_user_id Cookie 访问首页,在 HTML 中搜 revert_switch 或 switch back 相关字段,有输出就是暴露面。
07 修复建议
立即升级 DevKit Pro 到 2.3.1 或更新版本。
临时缓解(无法升级时):用防火墙规则或 WAF 拦截带 original_user_id Cookie 的未认证请求,或直接停用该插件。
升级后验证:带 original_user_id=1 的 Cookie 访问站点,footer 不应再渲染切回表单,回传 nonce 应返回权限错误。
另外检查管理员账号近期有没有异常登录(IP、时间异常),必要时重置管理员密码并强制退出全部会话。
08 红队视角
利用门槛极低:无登录、无上传、无越权探测,两步 HTTP 请求就能拿到管理员会话,属于打 WP 站优先排队的高价值入口。
链式价值:拿到 wp-admin 后,主题/插件编辑器写 PHP、上传恶意插件,直接 webshell → RCE。同类插件生态里切换用户功能前科不少,DevKit Pro 此前还有另一个 CVE-2026-14357(Subscriber 级即可装任意主题 ZIP 导致 RCE,CVSS 8.8)——同一家插件的授权体系整体是个重灾区。
检测侧:日志里搜未认证请求携带 original_user_id Cookie 的访问记录,命中即代表有人在碰你的站。
防御侧启示:能力校验必须对 current_user_can() 即请求者本人做,nonce 不能代替授权——nonce 只证明见过表单,不证明有权操作。写 WP 插件时凡是切换身份、还原身份类逻辑,把 Cookie、参数里的身份来源全部当不可信输入处理。
如果文章对您有收获,欢迎关注、点赞、推荐、转发。
— END —
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:红队安全圈 红队安全圈
红队安全圈《(9.8分) CVE-2026-14378:WordPress DevKit Pro 未登录管理员接管》