Name: Soo Yee Lim
Date: 26 Nov 2026
Time: 12:30 PM
Location: Zoom
Zoom Link:
Supervisor's name: Thomas Pasquier
Thesis title: Towards Safe Unprivileged Kernel Extensibility
Abstract:
The eBPF framework enables execution of user-provided code in the Linux kernel. In the last few years, a large ecosystem of cloud services has used eBPF to enhance container security, system observability, and network management. Meanwhile, incessant discoveries of memory safety vulnerabilities have left the systems community with no choice but to disallow unprivileged eBPF programs, which unfortunately limits eBPF use to only privileged users.
Unprivileged eBPF is useful and feasible for Linux kernel extensibility. It is useful because a default policy in Linux, while performing well on average, cannot be optimal in all circumstances. The demand is not only mine. Developers have repeatedly proposed extending seccomp with eBPF to make its filters more expressive, and because installing a filter is an unprivileged operation by design, such proposals need unprivileged eBPF to be safe. I demonstrate this utility with SABPF, an extension of the eBPF framework capable of deploying secure system-level audit mechanisms at the container granularity, with an audit framework, an intrusion detection system, and a lightweight access control mechanism. PROVBPF extends SABPF into the first eBPF-based whole-system provenance capture mechanism, and FetchBPF, which I co-design, allows developers to express and deploy prefetching policies without modifying the kernel codebase.
Unprivileged eBPF is feasible because an extension can be scoped to the workload that loaded it and isolated at run time. For scoping, I extend the eBPF subsystem so that a program runs only for Linux Security Module events triggered by processes in a designated cgroup; Google later contributed an equivalent mechanism upstream. For isolation, I survey kernel compartmentalization and propose a taxonomy for comparing how techniques define and enforce intra-kernel boundaries. I then present SandBPF, which dynamically sandboxes eBPF programs, which confines their memory accesses using either software fault isolation or ARM’s Memory Tagging Extension. Together, scoping and isolation bring unprivileged eBPF a step closer to being usable in practice.