CVE-2025-61776CVE-2025-61776是Dependency-Track组件分析平台中的一个信息泄露漏洞,该漏洞存在于4.13.5之前的版本中。Dependency-Track是一款用于识别和降低软件供应链风险的开源组件分析平台。漏洞的核心问题在于:当Dependency-Track实例中包含.NET组件、配置了自定义NuGet仓库且该仓库配置了认证凭证时,如果自定义仓库服务器的服务索引(service index)中未提供PackageBaseAddress资源,Dependency-Track可能会将本应发送给私有NuGet仓库的认证凭证(通过HTTP Authorization头)错误地发送至公共的api.nuget.org,同时可能将标记为内部的组件名称和版本信息泄露给api.nuget.org。该漏洞的CVSS评分为4.7,属于中危级别,攻击向量为网络利用,需要用户交互(如触发组件分析扫描),主要影响为机密性的低级别泄露。漏洞已于Dependency-Track 4.13.5版本中修复,官方同时提供了临时缓解措施。
从技术层面分析,该漏洞源于Dependency-Track在处理NuGet仓库配置时的逻辑缺陷。NuGet协议规定客户端应首先访问仓库的服务索引(service index)以获取各类资源的URL地址,其中PackageBaseAddress资源指向存储.nupkg包的基地址。当Dependency-Track尝试从自定义NuGet仓库获取组件元数据时,其工作流程如下:
1. 客户端向配置的私有NuGet仓库发送请求,获取服务索引文档;
2. 解析服务索引中的资源地址,包括PackageBaseAddress等关键资源;
3. 使用从服务索引获取的URL进行后续的组件元数据查询和包下载操作。
漏洞触发条件:当私有仓库的服务索引中缺少PackageBaseAddress资源时,Dependency-Track的代码可能回退到一个硬编码的默认URL(即api.nuget.org),但在执行此回退操作时,未能正确清除先前为私有仓库设置的Authorization头信息。这导致原本用于私有仓库认证的凭证被附加到对api.nuget.org的请求中,从而造成凭证泄露。同时,由于请求被路由到公共的NuGet服务,私有组件的查询请求也会将内部组件的名称和版本信息暴露给api.nuget.org。
利用此漏洞需要满足以下条件:(1) Dependency-Track实例中存在.NET组件分析任务;(2) 管理员配置了带有认证凭证的自定义NuGet仓库;(3) 该私有仓库的服务索引不包含PackageBaseAddress资源条目。攻击者可以通过监控api.nuget.org的访问日志或通过中间人攻击捕获泄露的Authorization头来获取私有仓库的凭证,进而访问受保护的私有组件仓库。