Snyk team has found four vulnerabilities collectively called “Leaky Vessels” that impact the runc and Buildkit container infrastructure and build tools, potentially allowing attackers to perform container escape on various software products.
On January 31, 2024, Buildkit fixed the flaws with version 0.12.5, and runc addressed the security issue impacting it on version 1.1.12.
Docker released version 4.27.0 on the same day, incorporating the secured versions of the components in its Moby engine, with versions 25.0.1 and 24.0.8.
Honestly, if you’re running public facing services, you should run the latest everything you can. There’s a risk that stuff breaks, but at least you’re not having to worry about patched exploits.
I would add latest, security wise, not everything. That would be a recipe for disaster imo.
If you are relying on Docker as a security boundary you are making a mistake.
Docker isolation is good enough to keep honest people honest but isn’t good enough to keep out malicious actors. The Linux kernel API is simply too large of an attack surface to be highly secure.
If you want to run completely untrusted software you want a VM boundary at a very minimum. Ideally run it on completely separate hardware. There are few exceptions like browser isolation and gVisor which are strong software isolation without a VM but docker or any Linux container runner is not on that list. If the software has direct access to the host kernel it shouldn’t be considered secure.
Don’t run docker, so far it has proven quite insecure, and that was by design at first because docker was created for development environments and not for deployment.
Later docker added better security, because they understood the value in deployment too. But many distro are still insecure by default and it takes both the effort of sysadmins and image developers to deploy securely docker containers.
I switched to Podman: no daemon, no socket, no root operations out of the box. And the transition is basically seamless too.
I believe podman and containerd use
runc
under the hood so they’re also affected by this container escape vulnerability. You should update it to the latest version.Podman can use different tools under the hood, will check which one I am using.
I think on redhat/fedora it uses runc by default and on debian/arch it uses crun by default.
deleted by creator
deleted by creator
Can you suggest one? I’ve been tinkering with podman, but if there’s something better I’d like to try that too
deleted by creator
Runc is native.
again and again … docker is becoming a joke
Every software has security vulnerabilities. The important thing is just that they get fixed quickly when they’re found and it seems like that was the case here.
I use <insert obscure software> instead, it has no vulnerabilities!
It has no known vulnerabilities.
I like to describe this as a game of peekaboo.
Where’s the vulnerability?
There it is!
Where’s the vulnerability?
(Not opening eyes) Huh, I guess there are none!