Skip to content

Jeff Dileo - Evil eBPF: Practical Abuses of In-Kernel Bytecode Runtime

Jeff Dileo

Demonstrates how eBPF programs can be weaponized to create undetectable Linux kernel rootkits with full privilege and persistent covert channels.

Summary

eBPF as an Offensive Primitive

Jeff Dileo presents research on abusing the Linux eBPF subsystem — a technology designed for safe kernel instrumentation — as an offensive capability for rootkits, privilege escalation, and detection evasion.

eBPF Background

Extended Berkeley Packet Filter allows loading small, sandboxed programs into the Linux kernel via the bpf() syscall, with the kernel verifier ensuring memory safety. eBPF is widely deployed for observability (perf, bcc), networking (XDP, TC), and security (Falco, Seccomp).

Weaponizing eBPF

Dileo demonstrates loading eBPF programs that hook system calls (via kprobe/tracepoint attachments) to intercept and modify kernel operations without modifiable kernel code — creating a rootkit that hides files, network connections, and processes from standard Linux observation tools while evading loadable kernel module detection.

Privilege Escalation

eBPF programs loaded with CAP_BPF (available in Linux 5.8+) can read arbitrary kernel memory and overwrite cred structures to escalate to root, bypassing traditional SUID binary requirements.

Related talks