Con questo permesso, un attaccante potrebbe caricare nuove versioni degli artefatti con codice dannoso come immagini 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>
È stato verificato che è possibile caricare una nuova immagine Docker malevola con lo stesso nome e tag di quella già presente, quindi la vecchia immagine perderà il tag e la prossima volta che verrà scaricata l'immagine con quel tag verrà scaricata quella malevola.
Carica una libreria Python
Inizia creando la libreria da caricare (se è possibile scaricare l'ultima versione dal registro, puoi evitare questo passaggio):
Configura la struttura del tuo progetto:
Crea una nuova directory per la tua libreria, ad esempio hello_world_library.
All'interno di questa directory, crea un'altra directory con il nome del tuo pacchetto, ad esempio hello_world.
All'interno della directory del tuo pacchetto, crea un file __init__.py. Questo file può essere vuoto o può contenere inizializzazioni per il tuo pacchetto.
Non è possibile caricare una libreria Python con la stessa versione di quella già presente, ma è possibile caricare versioni superiori (o aggiungere un extra .0 alla fine della versione se funziona - non in Python però -), o eliminare l'ultima versione e caricarne una nuova con (necessario artifactregistry.versions.delete):
Con questa autorizzazione è possibile scaricare artefatti e cercare informazioni sensibili e vulnerabilità.
Scarica un'immagine 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>