CVE-2024-39897

zot is an OCI image registry. Prior to 2.1.0, the cache driver `GetBlob()` allows read access to any blob without access control check. If a Zot `accessControl` policy allows users read access to some repositories but restricts read access to other repositories and `dedupe` is enabled (it is enabled by default), then an attacker who knows the name of an image and the digest of a blob (that they do not have read access to), they may maliciously read it via a second repository they do have read access to. This attack is possible because [`ImageStore.CheckBlob()` calls `checkCacheBlob()`](https://github.com/project-zot/zot/blob/v2.1.0-rc2/pkg/storage/imagestore/imagestore.go#L1158-L1159) to find the blob a global cache by searching for the digest. If it is found, it is copied to the user requested repository with `copyBlob()`. The attack may be mitigated by configuring "dedupe": false in the "storage" settings. The vulnerability is fixed in 2.1.0.
Configurations

No configuration.

History

21 Nov 2024, 09:28

Type Values Removed Values Added
References () https://github.com/project-zot/zot/commit/aaee0220e46bdadd12115ac67c19f9d3153eb1df - () https://github.com/project-zot/zot/commit/aaee0220e46bdadd12115ac67c19f9d3153eb1df -
References () https://github.com/project-zot/zot/security/advisories/GHSA-55r9-5mx9-qq7r - () https://github.com/project-zot/zot/security/advisories/GHSA-55r9-5mx9-qq7r -

11 Jul 2024, 13:06

Type Values Removed Values Added
Summary
  • (es) zot es un registro de imágenes OCI. Antes de 2.1.0, el controlador de caché `GetBlob()` permite acceso de lectura a cualquier blob sin verificación de control de acceso. Si una política `accessControl` de Zot permite a los usuarios acceso de lectura a algunos repositorios pero restringe el acceso de lectura a otros repositorios y `dedupe` está habilitado (está habilitado de forma predeterminada), entonces un atacante que conoce el nombre de una imagen y el resumen de una blob (al que no tienen acceso de lectura), pueden leerlo maliciosamente a través de un segundo repositorio al que sí tienen acceso de lectura. Este ataque es posible porque [`ImageStore.CheckBlob()` llama a `checkCacheBlob()`](https://github.com/project-zot/zot/blob/v2.1.0-rc2/pkg/storage/imagestore/imagestore .go#L1158-L1159) para encontrar el blob como caché global buscando el resumen. Si se encuentra, se copia al repositorio solicitado por el usuario con `copyBlob()`. El ataque se puede mitigar configurando "dedupe": false en la configuración de "storage". La vulnerabilidad se solucionó en 2.1.0.

09 Jul 2024, 19:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-07-09 19:15

Updated : 2024-11-21 09:28


NVD link : CVE-2024-39897

Mitre link : CVE-2024-39897

CVE.ORG link : CVE-2024-39897


JSON object : View

Products Affected

No product.

CWE
CWE-639

Authorization Bypass Through User-Controlled Key