Skip to content

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) with RESOLVE_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 /volume into a writable bind of /proc/sys/kernel/core_pattern, and chained mounts faking /proc/.../attr/apparmor paths.
  • 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.