CVE-2026-35172Distribution是用于打包、存储和交付容器内容的工具包。在3.1.0版本之前,当同时启用`storage.cache.blobdescriptor: redis`和`storage.delete.enabled: true`时,存在访问控制失效漏洞。攻击者可利用该漏洞,在仓库A显式删除Blob后,通过访问仓库B中相同摘要的Blob,触发Redis缓存重新填充共享描述符,从而使仓库A中已删除的Blob恢复可读状态,导致敏感信息泄露。
该漏洞的核心在于Redis缓存层与存储层之间的数据同步逻辑存在缺陷。当启用Redis缓存并执行删除操作时,Distribution仅清除了共享的Blob摘要描述符,却未彻底清除仓库A与该Blob之间的成员资格缓存。当后续有请求(如Stat或Get)针对仓库B中相同Digest的Blob时,系统检测到Blob物理存在,便会更新Redis缓存。此时,由于旧的成员资格数据未失效,缓存更新机制错误地重建了仓库A对该Blob的访问链接。这种逻辑漏洞破坏了删除操作的原子性,使得已删除的数据可通过特定操作序列被重新访问。