Bypassing Docker Authz Plugin and Using Docker-Containerd for Privesc

Containers, Docker containers in particular, are deployed everywhere these days. This is especially true in build environments or your typical CI/CD pipeline. A frequent requirement in these environments is the ability to build Docker container images, which tends to introduce security vulnerabilities through misconfiguration. One typically finds that the docker daemon is exposed to allow for so-called docker-in-docker builds, which I’ve previously shown can easily lead to container breakout. This means I’m always on the lookout for possible places that the Docker daemon/API might be directly accessible....

July 11, 2019 · 13 min · 2581 words · Etienne Stalmans

Go get -u CVE-2018-16873

Last year I stumbled across a vulnerability in Go’s go get command, which could lead to code execution when a malicious Go package was downloaded. I reported this to the Go team and it was subsequently assigned CVE-2018-16873. The actual vulnerability was really interesting since it was solely a logic vulnerability, where I abused the order in which packages were cloned by the go get command and how these would be laid out on disk. This makes it one of my personal favourite bugs. ...

March 28, 2019 · 12 min · 2464 words · Etienne Stalmans

Universal RCE with Ruby YAML.load

Last year Luke Jahnke wrote an excellent blog post on the elttam blog about finding a universal RCE deserialization gadget chain for Ruby 2.x. In the post he discusses the process of finding and eventually exploiting a gadget chain for Marshal.load. I was curious if the same chain could be used with YAML.load. It has been shown before that using YAML.load with user supplied data is bad, but all the posts I could find focuses on Ruby on Rails (RoR). Wouldn’t it be nice to have a gadget chain to use in non-RoR applications? ...

March 2, 2019 · 5 min · 1002 words · Etienne Stalmans

Dockerfile for creating a git repository to serve CVE-2018-11235

It has been a while since the Git vulnerability was announced. The major public repository providers have long since been preventing hosting repositories serving CVE-2018-11235. ...

September 19, 2018 · 1 min · 205 words · Etienne Stalmans

Getting root on a Kubernetes node with gitRepo and CVE-2018-11235

Shortly after the recent Git vulnerability was announced, a security advisory for Kubernetes was published. ...

June 3, 2018 · 3 min · 633 words · Etienne Stalmans