Com essa permissão, um atacante poderia fazer upload de novas versões dos artefatos com código malicioso, como imagens Docker:
# Configure docker to use gcloud to authenticate with Artifact Registrygcloudauthconfigure-docker<location>-docker.pkg.dev# tag the image to upload itdockertag<local-img-name>:<local-tag><location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag># Upload itdockerpush<location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag>
Foi verificado que é possível fazer upload de uma nova imagem docker maliciosa com o mesmo nome e tag da já existente, fazendo com que a antiga perca a tag e na próxima vez que a imagem com essa tag for baixada, a maliciosa será baixada.
Upload de uma biblioteca Python
Comece criando a biblioteca para fazer o upload (se você puder baixar a versão mais recente do registro, pode pular esta etapa):
Configure a estrutura do seu projeto:
Crie um novo diretório para sua biblioteca, por exemplo, hello_world_library.
Dentro deste diretório, crie outro diretório com o nome do seu pacote, por exemplo, hello_world.
Dentro do diretório do seu pacote, crie um arquivo __init__.py. Este arquivo pode estar vazio ou pode conter inicializações para o seu pacote.
Não é possível fazer upload de uma biblioteca Python com a mesma versão da que já está presente, mas é possível fazer upload de versões superiores (ou adicionar um .0 extra no final da versão, se isso funcionar -não em Python, no entanto-), ou excluir a última versão e fazer upload de uma nova com (necessário artifactregistry.versions.delete):
Com essa permissão, você pode baixar artefatos e procurar por informações sensíveis e vulnerabilidades.
Baixar uma imagem Docker:
# Configure docker to use gcloud to authenticate with Artifact Registrygcloudauthconfigure-docker<location>-docker.pkg.dev# Dowload imagedockerpull<location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag>