
Proof of Concept für CVE-2020-15257 in containerd.
Dieses Repository enthält Proof-of-Concept-Exploit-Code für CVE-2020-15257, wie in unserem Blogbeitrag beschrieben. Obwohl für containerd 1.2.x und 1.3.x geschrieben, sollte es auf nicht gepatchten Versionen von containerd 1.4.x funktionieren.
$ go build
$ docker build -t abstractshimmer .
$ docker run --rm -d --network host abstractshimmer | xargs docker logs -f
$ cat /tmp/shimmer.out
$ cat /tmp/shimmer.binary
$ # or, for containerd 1.2.x
$ cat /etc/crontab
Hinweis: Dieser Exploit lässt Docker/containerd etwas durcheinander zurück. Es wird einen hängengebliebenen containerd-shim und einen Docker-Container geben, die beendet bzw. mit docker rm --force gelöscht werden müssen, um die Dinge etwas zu bereinigen. /var/lib/containerd/io.containerd.runtime.v1.linux/moby/ und /run/containerd/io.containerd.runtime.v1.linux/moby/ werden ebenfalls einige Überreste enthalten. Darüber hinaus versucht dieser Exploit nicht, containerd's address-Dateien zu korrigieren. Dies kann zu Problemen führen, wenn nach dem Ausnutzen des Exploits versucht wird, ein anfälliges System zu aktualisieren. Docker/containerd kann dann möglicherweise nicht sauber neu gestartet werden und/oder vorhandene Container werden nicht angezeigt. Wenn Sie dies beim Aktualisieren Ihres containerd-Pakets beobachten, könnte dies ein Hinweis darauf sein, dass das System zuvor durch eine Variante dieses Exploits kompromittiert wurde.