CVE-2026-4117WordPress CalJ 插件在 1.5 及之前版本中存在权限缺失漏洞。该漏洞源于 `CalJSettingsPage` 类构造函数未进行能力校验及 nonce 验证,直接处理 POST 数据中的 'save-obtained-key' 操作。由于插件引导文件在 `is_admin()` 返回 true 时即实例化该类,导致任何向 wp-admin 发起请求的已认证用户均可利用此漏洞修改插件 API 密钥并清除 Shabbat 缓存,进而接管插件的 API 集成功能。
该漏洞的技术根源在于 WordPress CalJ 插件的 `CalJSettingsPage` 类构造函数逻辑缺陷。在插件主文件 `calj.php` 中,代码仅通过 `is_admin()` 判断即实例化 `CalJSettingsPage`,这意味着任何访问后台的已认证用户都会触发该类。在 `CalJSettingsPage.php` 的构造函数中,代码直接检测 `$_POST['save-obtained-key']` 参数,若存在则调用 `save_api_key` 方法将 POST 数据中的 API 密钥写入数据库。关键问题在于,此操作未进行 `current_user_can('manage_options')` 权限校验,也未包含任何 nonce 令牌验证。因此,最低权限的订阅者账户即可构造恶意 POST 请求发送至 WordPress 后台,绕过权限限制篡改插件核心配置,导致 API 集成被劫持。