(9.8分)CVE-2026-14378:WordPressDevKitPro未登录管理员接管

admin 2026-10-03 04:36:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 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 公开渲染给任何访客——包括未登录用户。

两件事拼在一起就是完整攻击链:

  1. 攻击者带着 original_user_id=<管理员ID> 的 Cookie 访问站点;

  2. 页面 footer 会公开吐出一个合法 nonce;

  3. 攻击者拿着这个 nonce POST 回 revert_switch;

  4. 插件校验 Cookie 指向的用户是否是管理员——是的,管理员,校验通过;

  5. 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 未登录管理员接管》

评论:0   参与:  0