CVE-2026-34587Kirby CMS 在 4.9.0 和 5.4.0 之前的版本中存在权限绕过漏洞。该漏洞源于 REST API 允许在创建页面时覆盖 `isDraft` 标志,且未正确校验 `pages.changeStatus` 权限。拥有 `pages.create` 权限的经过身份验证的攻击者,可以通过 API 直接创建已发布的页面,从而绕过正常的工作流限制,造成高完整性影响。
漏洞的核心在于 Kirby CMS 在处理页面创建时的权限校验逻辑存在缺陷。系统在设计上通过 `pages.create` 和 `pages.changeStatus` 两个独立权限来控制内容发布流程,但在 REST API 实现中,这两个权限的关联性检查被绕过了。具体而言,当通过 Panel 创建页面时,系统强制生成草稿,发布时校验 `changeStatus`。但通过 REST API 创建时,请求参数允许直接覆盖 `isDraft` 标志。受影响的版本仅验证了请求者是否具备 `pages.create` 权限,而忽略了当 `isDraft` 被设为 false 时实际上发生了状态变更,因此未校验 `pages.changeStatus`。这使得仅具备基础创建权限的认证攻击者,能够利用 API 接口直接发布未经审核的页面,破坏了内容管理的完整性和工作流规范。