缓存驱动程序 GetBlob() 允许对任何 blob 进行读取访问,而无需进行访问控制检查 (CVE-2024-39897)
CVE编号
CVE-2024-39897利用情况
暂无补丁情况
N/A披露时间
2024-07-10漏洞描述
Zot 是一个 OCI 图像注册表。在 2.1.0 版本之前,缓存驱动程序的 `GetBlob()` 函数允许读取任何 blob 而无需进行访问控制检查。如果 Zot 的 `accessControl` 策略允许用户读取某些仓库的图像,但限制了对其他仓库的读取访问权限,并且启用了 `dedupe`(默认启用),那么知道图像名称和 blob 摘要(他们没有读取访问权限)的攻击者可能会通过他们有读取访问权限的第二个仓库恶意读取它。这种攻击之所以可能,是因为 [`ImageStore.CheckBlob()` 调用了 `checkCacheBlob()`](https://github.com/project-zot/zot/blob/v2.1.0-rc2/pkg/storage/imagestore/imagestore.go#L1158-L1159) 来通过查找摘要来查找全局缓存中的 blob。如果找到了 blob,它将使用 `copyBlob()` 复制到用户请求的仓库中。通过在“存储”设置中配置 "dedupe": false 可以缓解这种攻击。该漏洞已在 2.1.0 版本中修复。解决建议
"将组件 zotregistry.dev/zot 升级至 2.1.0 及以上版本""将组件 zotregistry.io/zot 升级至 2.1.0 及以上版本"
参考链接 |
|
---|---|
https://github.com/project-zot/zot/commit/aaee0220e46bdadd12115ac67c19f9d3153eb1df | |
https://github.com/project-zot/zot/security/advisories/GHSA-55r9-5mx9-qq7r |
- 攻击路径 网络
- 攻击复杂度 低
- 权限要求 低
- 影响范围 未更改
- 用户交互 无
- 可用性 无
- 保密性 低
- 完整性 无
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论