CVE-2026-33540Distribution是一个用于打包、运输、存储和交付容器内容的工具包。在3.1.0版本之前,当该组件处于拉取缓存模式时,其在解析上游注册表返回的WWW-Authenticate质询时存在安全缺陷。Distribution直接使用Bearer质询中的realm URL来定位认证端点,而未验证该URL是否与配置的上游注册表主机匹配。因此,攻击者可以控制上游服务器或利用中间人攻击,诱导Distribution将配置的上游凭证通过基本认证发送到攻击者控制的URL,从而导致敏感凭证遭窃取。
该漏洞的核心机制在于Distribution组件在处理“拉取缓存”请求时,对认证重定向URL缺乏严格的安全校验。当Distribution配置为缓存模式并尝试从上游Registry拉取镜像时,若上游要求认证,通常会返回401状态码及包含WWW-Authenticate头的响应。根据规范,该头部包含一个realm参数,指示客户端应向何处请求认证令牌。
在受影响版本中,代码直接提取并信任realm参数的值,未检查其主机名是否属于预配置的可信上游Registry。这使得攻击者可以搭建一个恶意的上游服务,或者在能够进行中间人攻击的情况下,篡改响应包,将realm指向攻击者控制的外部服务器(如http://evil.com/log)。Distribution在收到此响应后,会误认为这是合法的授权服务,并携带原本用于访问受信任上游Registry的用户名和密码(Basic Auth),向攻击者的服务器发起HTTP请求。攻击者只需记录该请求的Authorization头,即可获取高权限凭证。