
containerd에서 CVE-2020-15257에 대한 개념 증명.
이 저장소는 CVE-2020-15257에 대한 개념 증명 익스플로잇 코드를 포함하고 있으며, 블로그 게시물에 설명되어 있습니다. containerd 1.2.x 및 1.3.x용으로 작성되었지만, 패치 이전의 containerd 1.4.x 버전에서도 작동합니다.
$ 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
참고: 이 익스플로잇은 Docker/containerd를 약간 불안정하게 만듭니다. 정리하려면 중단된 containerd-shim과 Docker 컨테이너를 각각 종료하고 docker rm --force를 실행해야 합니다. /var/lib/containerd/io.containerd.runtime.v1.linux/moby/ 및 /run/containerd/io.containerd.runtime.v1.linux/moby/에도 일부 잔여물이 남습니다. 이와 함께, 이 익스플로잇은 containerd의 address 파일을 조정하지 않습니다. 이로 인해 취약한 시스템을 익스플로잇한 후 업데이트를 시도할 때 Docker/containerd가 깨끗하게 재시작되지 않거나 기존 컨테이너를 볼 수 없게 되는 문제가 발생할 수 있습니다. containerd 패키지를 업데이트하는 동안 이 문제가 관찰된다면, 시스템이 이 익스플로잇의 변형에 의해 이전에 손상되었을 수 있다는 지표일 수 있습니다.