Path Safety in the Trenches#
FOSDEM 2026 digest Program Adjacent pick 31 January – 1 February 2026
Aleksa Sarai (runc maintainer, cyphar)
- Why: The most bang-for-the-buck container runtime exploits for a decade have been filesystem confused-deputy attacks, including the November 2025 runc CVEs. This is the definitive taxonomy and the state of kernel-side fixes.
- What: A walkthrough of "regular" path safety (TOCTOU on path components) versus "strict" path safety (exact-path requirements for procfs, magic links, and overmounts), cataloguing ~15 years of CVEs, and the migration of runc's codebase to a path-safe, file-descriptor-centric design.
- How: The kernel primitives are
openat2(2)withRESOLVE_IN_ROOT/RESOLVE_BENEATH/RESOLVE_NO_SYMLINKS, plus the new mount API (fsopen/fsmount/open_tree) to create a private, validated procfs.libpathrs(Rust with C/Go/Python bindings) packages it all. The November 2025 CVEs (CVE-2025-31133, CVE-2025-52565, CVE-2025-52881) are dissected concretely: racing a bind-mount source swap to turn/volumeinto a writable bind of/proc/sys/kernel/core_pattern, and chained mounts faking/proc/.../attr/apparmorpaths. - Where applicable: Container runtime and daemon authors, and honestly any privileged Unix program that operates on paths. Also a candid threat-model discussion: runc has no formal threat model, and most of these bugs live in the "misconfiguration" gray zone.