conference logo

Playlist "All Systems Go! 2024"

libpathrs: securing path operations for system tools

Aleksa Sarai

Container runtimes and other privileged system management tools have historically struggled with safely operating on a path within a directory tree controlled by a malicious user. [libpathrs][] is a library which makes it easy to do said path operations, as well as providing some other safe path-related utilities such as providing safe wrappers to operate on procfs files in a safe way.

[libpathrs]: https://github.com/openSUSE/libpathrs

As part of the kernel work on openat2(2) and continuing kernel work to make magic-links safer (against both confused deputy attacks and resource re-opening attacks), the need for a library to make it easy to do all sorts of VFS operations safely became obvious, and so [libpathrs][] was born. [libpathrs][] uses openat2(2) if available, but has a fallback to the old fashioned (and more finicky) method of doing safe-ish path resolutions.

This talk will talk about how [libpathrs][] works and how it can help secure container runtimes and privileged system management tools against attacks, as well as touching on some ongoing kernel work which would allow for even more hardening.

After the talk, slides will be available from [my site](https://www.cyphar.com/talks).

[libpathrs]: https://github.com/openSUSE/libpathrs

Licensed to the public under https://creativecommons.org/licenses/by/4.0/de/