
POC per CVE-2021-41091
Questo exploit offre un'analisi approfondita della vulnerabilità di sicurezza CVE-2021-41091 e fornisce una guida passo passo su come utilizzare lo script di exploit per ottenere una escalation dei privilegi su un host.
CVE-2021-41091 è una falla in Moby (Docker Engine) che consente agli utenti Linux non privilegiati di attraversare ed eseguire programmi all'interno della directory dei dati (solitamente situata in /var/lib/docker) a causa di permessi non correttamente ristretti. Questa vulnerabilità è presente quando i container contengono programmi eseguibili con permessi estesi, come setuid. Gli utenti Linux non privilegiati possono quindi scoprire ed eseguire tali programmi, oltre a modificare i file se l'UID dell'utente sull'host corrisponde al proprietario o al gruppo del file all'interno del container.
Il filesystem overlay è un componente critico nello sfruttamento di questa vulnerabilità. Il filesystem overlay di Docker consente di sovrapporre il file system del container a quello dell'host, permettendo così al sistema host di accedere e manipolare i file all'interno del container. Nel caso di CVE-2021-41091, i permessi eccessivamente permissivi della directory in /var/lib/docker/overlay2 consentono agli utenti non privilegiati di accedere ed eseguire programmi all'interno dei container, portando a un potenziale attacco di escalation dei privilegi.
Connettersi al container Docker ospitato sulla propria macchina e ottenere accesso root.
All'interno del container, impostare il bit setuid su /bin/bash con il seguente comando: chmod u+s /bin/bash
Sul sistema host, eseguire lo script di exploit fornito (poc.sh) clonando il repository ed eseguendo lo script come segue:
git clone https://github.com/UncleJ4ck/CVE-2021-41091
cd CVE-2021-41091
chmod +x ./poc.sh
./poc.sh
Testato su docker engine versione 20.10.5+dfsg1
È fondamentale aggiornare Docker alla versione 20.10.9 o successiva per risolvere questa vulnerabilità.