When I started reading on BPF there weren’t many academic papers to describe how it worked, how it didn’t, or how it is used.
There are many blog posts and informal articles out there, but it’s harder to find self-contained papers with references to older, sometimes unsuspected, related works.
They have become more frequent though, so I wanted to draw up a list with one-sentence summaries for anyone looking for related works or otherwise interested.
I expect this list to only grow with time.
If I want to keep things manageable, I need a way to select papers.
Except I’d rather not be the one having to decide which papers are the “best papers”1.
So I opted to follow the selection from CSRankings: I will only list papers from conference selected by CSRankings by default2.
CSRankings tends to put the bar fairly high, but I think there is at least consensus on the top conferences they selected.
I’ve sorted papers according to their type of contribution and the field or area they focus on.
For example, papers improving either the JIT compilers or verifier of eBPF will have improving, jit, and verifier
(see those papers).
If you notice any bug in the selectors, missing papers, or other opportunity for improvement, as usual, don’t hesitate to reach out via one of the contacts at the bottom of the page.
Type selector
Areas selector
Hide non-default conferences from CSRankings
Selected 92 papers.
It's the Kernel's Fault! Custom Page Fault Handling With bpf_fault
SOSP'26 PaperTal Zussman, Riju Dey, Hasan Zengin, Yiming Fang, David Hildenbrand, Asaf Cidon usingmisc
Extends the Linux kernel to allow users to run custom eBPF-based page fault handlers.
Tamias: Feedback-Guided Systematic Concurrency Exploration for Transparent Distributed System Fuzzing
SOSP'26 PaperCongyu Liu, Yaoxu Song, Pedro Fonseca, Yongle Zhang usingmiscsecurity
Systematically explores the concurrency space during fuzzing using sched_ext to control the order of execution of threads.
Waiting at the front door: Continuous monitoring of latency in the host network stack
IMC'26 PaperSimon Sundberg, Anna Brunstrom, Simone Ferlin-Reiter, Jesper Dangaard Brouer, Toke Høiland-Jørgensen usingnetworking
Implements a tool to measure the host latency of every packet on the system with very low overhead using the fentry and fexit BPF attach points.
Efficient Build Dependency Verification Using eBPF and Incremental Analysis
ICSE'26 PaperYuta Saito, Kazunori Sakamoto, Hironori Washizaki usingsecurity
Uses BPF-based system call tracing to identify dependencies in build systems.
eMicro: Real-Time Multi-Hop Access Control for Microservices with eBPF
CCS'26 PaperRizky Ramadhana, Osama Bajaber, Saimon Amanuel Tsegai, Teryl Taylor, Frederico Araujo, Yuede Ji, Peng Gao usingnetworkingsecurity
Designs a system to enforce multi-hop network policies encoded as DFAs, with tc and socket BPF programs to propagate DFA states and enforce policies.
Agile QoS-aware Dynamic Power Management with eBPF Governors
ICS'26 PaperMohammadreza Rezvani, Daniel Wong usingmisc
Introduces Harware Managed P-States (HWP) policies as eBPF programs, to set the performance preference hints that control the CPU frequency.
Sealing the Window: Efficient Tamper Protection for Provenance Logs
S&P'26 PaperSagar Mishra, R. Sekar usingsecurity
Improves upon eAudit with a message authentication code (MAC) attached to the audit entry and computed using eBPF.
OS-Sanitizer: System-wide Latent Defect Inference in Linux Applications
Sec'26 PaperAddison Crump, Sahil Sihag, Florian Bauckholt, Keno Hassler, Thorsten Holz usingsecuritymisc
Identifies potential defects in Linux applications via dynamic testing using fprobes, uprobes, and LSM BPF programs.
Concurrency Fuzzing of the Linux Kernel with eBPF
Sec'26 PaperJiacheng Xu, Dylan Wolff, Xing Yi Han, Jialin Li, Abhik Roychoudhury usingmisc
Designs a fuzzer to find concurrency bugs in Linux using sched_ext to serialize the execution of kernel threads.
Don't Stall Me Now: Hiding Memory Latency in eBPF
SIGCOMM'26 Paper TalkFarbod Shahinfar, Marco Molè, Aurojit Panda, Gianni Antichi improvingnetworking
Extends the eBPF runtime and APIs to allow for prefetching and batching in networking BPF programs.
Virtualizing eBPF with Late-Binding
OSDI'26 PaperJing Zhang, Xiaguannan Song, Dong Du, Yubin Xia, Binyu Zang, Haibo Chen improvingmisc
Allows BPF hooks to be shared by multiple tenants by adding an indirection layer and dispatching to per-tenant programs.
PeeR: First-Class Scheduling for Latency Critical eBPF Applications
OSDI'26 Paper TalkJeremy Carin, Ben Holmes, Weiyang Wang, Ankit Bhardwaj, Manya Ghobadi improvingmisc
Makes BPF programs schedulable and preemptable using sched_ext and cooperative preemption at helper calls.
BeeQoS: A Cloud-Native QoS System for Adaptive and Scalable Multi-Priority Bandwidth Guarantees
WWW'26 PaperJinyao Liu, Si Wu, Haoyuan Ma, Chaoqun Li, Hongjing Yu, Dingyi Jia, Feng Li, Pengfei Hu usingnetworking
Implements a QoS system with multi-priority bandwidth guarantees using eBPF for traffic shaping and flow sampling.
Xkernel: Rethinking Performance Tunability of Operating System Kernels
OSDI'26 Paper TalkZhongjie Chen, Wentao Zhang, Yulong Tang, Ran Shu, Fengyuan Renn, Tianyin Xu, Jing Liu usingmisc
Leverages eBPF kprobes to tune arbitrary performance constants in the kernel at runtime.
HybridMesh: A Hardware-software Hybrid Approach for Accelerating Service Mesh Ingress
NSDI'26 Paper TalkMyoungsung You, Jaehyun Nam, Minjae Seo, Taejune Park, Seungwon Shin usingnetworking
Relies on BPF to handle in-packet metadata and to help improve performance of their service mesh, by redirecting traffic with tc-bpf and sk_msg.
Remote TCP Connection Offload and Applications
NSDI'26 Paper TalkShuo Li, Steven W. D. Chien, Tianyi Gao, Michio Honda usingnetworking
Relies on tc-bpf to implement flow steering while the tc-flower hardware offload is configured.
KRAKENGUARD: Towards Fine-Grained eBPF Isolation
NSDI'26 Paper TalkJainil Patel, Lucas Graeff Buhl-Nielsen, Adrien Ghosn, Marios Kogias improvingsecurity
Implements a userspace policy enforcement engine for BPF programs that handles cross-program interactions.
Tux: Efficient Drop-in Networking for Database Systems
VLDB'26 PaperXinjing Zhou, Viktor Leis, Xiangyao Yu, Michael Stonebraker usingnetworkingmisc
Leverages AF_XDP to build a high-performance networking stack for database systems.
RESYSTANCE: Unleashing Hidden Performance of Compaction in LSM-trees via eBPF
ICDE'26 PaperHongsu Byun, Seungjae Lee, Honghyeon Yoo, Myoungjoon Kim, Sungyong Park usingstorageoffload
Offloads the merge-sort phase of Log-Structured Merge-tree in the kernel using a new BPF hook on io_uring and verifier modifications.
DBdoctor: A Fine-grained and Non-intrusive Performance Diagnosis Platform for Databases
ICDE'26 PaperXinyue Shi, Quanqi Xin, Zhengjin Wang, Xinyi Zhang, Haoqiong Bian, Wei Lu, Qiyu Zhuang, Shuang Liu, Jikuan Zhang, Xiang Zheng, Yunpeng Chai, Xiaoyong Du usingtracingstorage
Implements a tool for performance diagnosis of database engines using eBPF uprobes and kprobes.
Formalizing the Linux eBPF Core ISA: A Mechanized Operational Semantics and Its Real-World Applications
OOPSLA'26 PaperShenghao Yuan, Yazhou Tang, Tianci Cao, Frédéric Besson, Jean-Pierre Talpin, Mingshuai Chen improvingverifiermisc
Formalizes all non-atomic instructions from the eBPF ISA in Rocq, identifying several bugs in the process.
ONCache: A Cache-Based Low-Overhead Container Overlay Network
NSDI'25 Paper TalkShengkai Lin, Shizhen Zhao, Peirui Cao, Xinchi Han, Quan Tian, Wenfeng Liu, Qi Wu, Donghai Han, Xinbing Wang usingnetworking
Leverages tc-bpf programs to accelerate the routing, encapsulation and decapsulation, and redirection of packets in a container overlay, independently of the usual network plugins.
EDDE: Container Deployment Framework Beyond the Cloud
SC'25 PaperHao Fan, Zhuo Huang, Shadi Ibrahim, Lin Gu, Song Wu usingmisc
Optimizes FUSE in the context of container images using preloaded eBPF maps to cache the pull indexes and image data.
Copper and Wire: Bridging Expressiveness and Performance for Service Mesh Policies
ASPLOS'25 Paper TalkDivyanshu Saxena, William Zhang, Shankara Pailoor, Isil Dillig, Aditya Akella usingnetworking
Traces related gRPC requests and response across applications by parsing an HTTP/2 tracing ID using cgroup-bpf programs.
BPF-DB: A Kernel-Embedded Transactional Database Management System For eBPF Applications
SIGMOD'25 PaperMatthew Butrovich, Samuel Arch, Wan Shen Lim, William Zhang, Jignesh M. Patel, Andrew Pavlo usingmiscstorage
Introduces an in-kernel database management system (DBMS) in eBPF, with ACID properties.
Approximation Enforced Execution of Untrusted Linux Kernel Extensions
Sec'25 PaperHao Sun, Zhendong Su improvingverifier
Relies on state approximations from the Linux verifier to enforce runtime checks on BPF programs.
Deprivileging Low-Level GPU Drivers Efficiently with User-Space Processes and CHERI Compartments
CCS'25 PaperPaul Metzger, A. Theodore Markettos, Edward Tomasz Napierała, Matthew Naylor, Robert N. M. Watson, Timothy M. Jones usingsecuritymisc
Implements in-kernel interrupt handlers on a uBPF VM, for userspace GPU drivers.
Rethinking Tamper-Evident Logging: A High-Performance, Co-Designed Auditing System
CCS'25 PaperRui Zhao, Muhammad Shoaib, Viet Tung Hoang, Wajih Ul Hassan usingsecurity
Designs a tamper-evident auditing system all in eBPF, including the authentication code computation
Intent-aware Fuzzing for Android Hardened Application
CCS'25 PaperSeongyun Jeong, Minseong Choi, Haehyun Cho, Seokwoo Choi, Hyungsub Kim, Yuseok Jeon usingsecuritytracingmisc
While fuzzing Android applications, relies on eBPF to trigger scheduled application behaviors and collect coverage.
Aeolia: A Fast and Secure Userspace Interrupt-Based Storage Stack
SOSP'25 PaperChuandong Li, Ran Yi, Zonghao Zhang, Jing Liu, Changwoo Min, Jie Zhang, Yingwei Luo, Xiaolin Wang, Zhenlin Wang, Diyu Zhou usingstoragemisc
Leverages sched_ext to bridge the scheduling semantic gap between userspace and the kernel when using user interrupts.
Prove It to the Kernel: Precise Extension Analysis via Proof-Guided Abstraction Refinement
SOSP'25 PaperHao Sun, Zhendong Su improvingverifier
Improves the Linux verifier's precision by refining the abstract state in userspace when needed, and producing a formal proof for it.
Training Solo: On the Limitations of Domain Isolation Against Spectre-v2 Attacks
S&P'25 PaperSander Wiebing, Cristiano Giuffrida analysissecurity
Leverages cBPF to implement a cross-domain Spectre-v2 transient execution attack.
SoK: Challenges and Paths Toward Memory Safety for eBPF
S&P'25 PaperKaiming Huang, Jack Sampson, Mathias Payer, Gang Tan, Zhiyun Qian, Trent Jaeger analysissecurityverifier
Surveys and evaluates existing work on eBPF memory safety.
SwiftSweeper: Defeating Use-After-Free Bugs Using Memory Sweeper Without Stop-the-World
S&P'25 Paper TalkJunho Ahn, Kanghyuk Lee, Chanyoung Park, Hyungon Moon, Youngjin Kwon usingmiscsecurity
Designs a memory-sweeping allocator to prevent use-after-free bugs, with a BPF-based custom page fault handler to improve performance.
eBPF Misbehavior Detection: Fuzzing with a Specification-Based Oracle
SOSP'25 PaperTao Lyu, Kumar Kartikeya Dwivedi, Thomas Bourgeat, Mathias Payer, Meng Xu, Sanidhya Kashyap improvingverifier
Introduces a specification-based oracle to fuzz the BPF verifier.
FlexGuard: Fast Mutual Exclusion Independent of Subscription
SOSP'25 PaperVictor Laforet, Sanidhya Kashyap, Călin Iorgulescu, Julia Lawall, Jean-Pierre Lozi usingmisc
Improves lock handover time by using eBPF to detect critical section preemptions.
cache_ext: Customizing the Page Cache with eBPF
SOSP'25 PaperTal Zussman, Ioannis Zarkadas, Jeremy Carin, Andrew Cheng, Hubertus Franke, Asaf Cidon usingmisc
Extends the kernel with new BPF hooks, kfuncs, and per-cgroup struct_ops to be able to customize the page cache policies.
Revealing the Unstable Foundations of eBPF-Based Kernel Extensions
EuroSys'25 PaperShawn Zhong, Jing Liu, Andrea Arpaci-Dusseau, Remzi Arpaci-Dusseau analysismisc
Implements a tool to detect mismatches in kernel APIs for tracing BPF programs.
RAKIS: Secure Fast I/O Primitives Across Trust Boundaries on Intel SGX
EuroSys'25 PaperMansour Alharthi, Fan Sang, Dmitrii Kuvaiskii, Mona Vij, Taesoo Kim usingnetworkingmisc
Securely enables XDP for UDP applications in SGX enclaves.
SIGCOMM'25 Paper TalkTian Pan, Enge Song, Yueshang Zuo, Shaokai Zhang, Yang Song, Jiangu Zhao, Wengang Hou, Jianyuan Lu, Xiaoqing Sun, Shize Zhang, Ye Yang, Jiao Zhang, Tao Huang, Biao Lyu, Xing Li, Rong Wen, Zhigang Zong, Shunmin Zhu usingnetworking
Improves the performance of their L7 load balancer by customizing the kernel's connection dispatch using sk_reuseport BPF programs.
Extending Applications Safely and Efficiently
OSDI'25 Paper TalkYusheng Zheng, Tong Yu, Yiwei Yang, Yanpeng Hu, Xiaozheng Lai, Dan Williams, Andi Quinn usingtracingmisc
Proposes to implement safe userspace extension mechanisms and observability tools using the bpftime userspace eBPF VM for better efficiency.
Rex: Closing the language-verifier gap with safe and usable kernel extensions
ATC'25 Paper TalkJinghao Jia, Ruowen Qin, Milo Craun, Egor Lukiyanov, Ayush Bansal, Minh Phan, Michael V. Le, Hubertus Franke, Hani Jamjoom, Tianyin Xu, Dan Williams improvingverifier
Reduces false positives by replacing the verifier by a language-based safety approach, with the Rust compiler and runtime checks.
Accelerating Nested Virtualization with HyperTurtle
ATC'25 Paper TalkOri Ben Zur, Jakob Krebs, Shai Aviram Bergman, Mark Silberstein usingmisc
Improves nested virtualization performance by offloading logic from the guest hypervisor to the host hypervisor using eBPF.
PageFlex: Flexible and Efficient User-space Delegation of Linux Paging Policies with eBPF
ATC'25 Paper TalkAnil Yelam, Kan Wu, Zhiyuan Guo, Suli Yang, Rajath Shashidhara, Wei Xu, Stanko Novaković, Alex C. Snoeren, Kimberly Keeton usingmisc
Extends the kernel, including with new writable tracepoints, to allow users to customize paging policies.
VEP: A Two-stage Verification Toolchain for Full eBPF Programmability
NSDI'25 Paper TalkXiwei Wu, Yueyang Feng, Tianyi Huang, Xiaoyang Lu, Shengkai Lin, Lihan Xie, Shizhen Zhao, Qinxiang Cao improvingverifier
Implements a proof-carrying code process for the verification of eBPF using annotations on the C source code.
eTran: Extensible Kernel Transport with eBPF
NSDI'25 Paper TalkZhongjie Chen, Qingkai Meng, ChonLam Lao, Yifan Liu, Fengyuan Ren, Minlan Yu, Yang Zhou usingnetworking
Designs a framework based on AF_XDP and new networking hooks to allow users to implement custom transport protocols on top of Linux.
NSDI'25 Paper TalkQiongwen Xu, Sebastiano Miano, Xiangyu Gao, Tao Wang, Adithya Murugadass, Songyuan Zhang, Anirudh Sivaraman, Gianni Antichi, Srinivas Narayana usingnetworking
Proposes a method to scale the processing of single-flow traffic on multiple cores using XDP.
A Flow-Sensitive Refinement Type System for Verifying eBPF Programs
OOPSLA'25 PaperAmeer Hamza, Lucas Zavalia, Arie Gurfinkel, Jorge A. Navas, Grigory Fedyukovich improvingverifier
Improves upon PREVAIL with faster, more specialized abstract domains for the packet pointers, other pointers, and numeric values.
A Complete Formal Semantics of eBPF Instruction Set Architecture for Solana
OOPSLA'25 PaperShenghao Yuan, Zhuoruo Zhang, Jiayi Lu, David Sanan, Rui Chang, Yongwang Zhao improvingmisc
Formalizes the eBPF bytecode used in Solana smart contracts.
Soleker: Uncovering Vulnerabilities in Solana Smart Contracts
ASE'25 PaperKunsong Zhao, Yunpeng Tian, Zuchao Ma, Xiapu Luo improvingsecuritymisc
Designs a method to detect vulnerabilities in the eBPF bytecode of Solana smart contracts.
Spinner: Detecting Locking Violations in the eBPF Runtime
ASE'25 PaperPriya Govindasamy, Joseph Bursey, Hsin-Wei Hung, Ardalan Amiri Sani improvingverifiersecuritymisc
Proposes a tool to help detect deadlocks caused by eBPF helpers using static analysis.
Program Analysis Combining Generalized Bit-Level and Word-Level Abstractions
ISSTA'25 PaperGuangsheng Fan, Liqian Chen, Banghu Yin, Wenyu Zhang, Peisen Yao, Ji Wang improvingverifier
Designs an abstract domain that combines all abstract domains of the current Linux eBPF verifier (tnums, u64 ranges, etc.), via a reduced product operation.
Measuring Network Latency from a Wireless ISP: Variations Within and Across Subnets
IMC'24 PaperSimon Sundberg, Anna Brunstrom, Simone Ferlin-Reiter, Toke Høiland-Jørgensen, Robert Chacón usingnetworking
Implements a latency measurement system for TCP in ISP networks, using tcp-ebpf to compute and aggregate measurements in the kernel.
P4Control: Line-Rate Cross-Host Attack Prevention via In-Network Information Flow Control Enabled by Programmable Switches and eBPF
S&P'24 Paper TalkOsama Bajaber, Bo Ji, Peng Gao usingnetworkingsecurity
Designs a network defense system that tracks lateral movement across hosts and processes using P4 and eBPF hooks.
BUDAlloc: Defeating Use-After-Free Bugs by Decoupling Virtual Address Management from Kernel
Sec'24 Paper TalkJunho Ahn, Jaehyeon Lee, Kanghyuk Lee, Wooseok Gwak, Minseong Hwang, Youngjin Kwon usingmiscsecurity
Designs a one-time allocator to detect use-after-free bugs, with a BPF-based custom page fault handler to improve performance.
BeeBox: Hardening BPF Against Transient Execution Attacks
Sec'24 Paper TalkDi Jin, Alexander J. Gaidis, Vasileios P. Kemerlis improvingverifiersecurity
Combines the verifier's static analysis with SFI-like runtime checks and memory copies to mitigate transient execution attacks.
eAudit: A Fast, Scalable and Deployable Audit Data Collection System
S&P'24 Paper TalkR. Sekar, Hanke Kimm, Rohit Aich usingsecurity
Implements a faster auditing system using eBPF at tracepoints.
Toss a Fault to BpfChecker: Revealing Implementation Flaws for eBPF runtimes with Differential Fuzzing
CCS'24 PaperChaoyuan Peng, Muhui Jiang, Lei Wu, Yajin Zhou improvingverifierjit
Designs a fuzzer for userspace eBPF runtimes, including Windows's, using differential fuzzing, verifier logs, and an intermediate representation of the eBPF bytecode.
NetEdit: An Orchestration Platform for eBPF Network Functions at Scale
SIGCOMM'24 Paper TalkTheophilus A. Benson, Prashanth Kannan, Prankur Gupta, Balasubramanian Madhavan, Kumar Saurabh Arora, Jie Meng, Martin Lau, Abhishek Dhamija, Rajiv Krishnamurthy, Srikanth Sundaresan, Neil Spring, Ying Zhang usingnetworking
Describes an orchestration system for eBPF programs designed to tune the network stack of Meta's services.
Merlin: Multi-tier Optimization of eBPF Code for Performance and Compactness
ASPLOS'24 Paper TalkJinsong Mao, Hailun Ding, Juan Zhai, Shiqing Ma improvingmisc
Proposes new compiler optimization tailored to the eBPF bytecode.
DINT: Fast In-Kernel Distributed Transactions with eBPF
NSDI'24 Paper TalkYang Zhou, Xingyu Xiang, Matthew Kiley, Sowmya Dharanipragada, Minlan Yu usingnetworkingoffload
Designs a new distributed transaction system that offloads common operations to tc and XDP.
BlueSWAT: A Lightweight State-Aware Security Framework for Bluetooth Low Energy
CCS'24 PaperXijia Che, Yi He, Xuewei Feng, Kun Sun, Ke Xu, Qi Li usingsecuritymisc
Proposes to use a userspace eBPF VM to facilitate the distribution of security patches to Bluetooth Low Energy (BLE) devices, to mitigate session-based attacks.
SeaK: Rethinking the Design of a Secure Allocator for OS Kernel
Sec'24 Paper TalkZicheng Wang, Yicheng Guang, Yueqi Chen, Zhenpeng Lin, Michael Le, Dang K Le, Dan Williams, Xinyu Xing, Zhongshu Gu, Hani Jamjoom usingsecuritymisc
Builds a secure allocator for the kernel, to separate security-sensitive objects, using new BPF helpers.
Rethinking Process Management for Interactive Mobile Systems
MobiCom'24 PaperJianwei Zheng, Zhenhua Li, Feng Qian, Wei Liu, Hao Lin, Yunhao Liu, Tianyin Xu, Nan Zhang, Ju Wang, Cang Zhang usingmisc
Leverages eBPF to measure the usage of hardware resources by Android applications and investigate slow UI responsiveness problems.
MegaTE: Extending WAN Traffic Engineering to Millions of Endpoints in Virtualized Cloud
SIGCOMM'24 Paper TalkCongcong Miao, Zhizhen Zhong, Yunming Xiao, Feng Yang, Senkuo Zhang, Yinan Jiang, Zizhuo Bai, Chaodong Lu, Jingyi Geng, Zekun He, Yachen Wang, Xianneng Zou, Chuanchuan Yang usingnetworking
Relies on eBPF to identify traffic sources and enforce traffic engineering via segment routing across the WAN.
FetchBPF: Customizable Prefetching Policies in Linux with eBPF
ATC'24 Paper TalkXuechun Cao, Shaurya Patel, Soo Yee Lim, Xueyuan Han, Thomas Pasquier usingmisc
Extends the kernel with new BPF hooks and helpers to be able to customize memory prefetching policies.
Validating the eBPF Verifier via State Embedding
OSDI'24 Paper TalkHao Sun, Zhendong Su improvingverifier
Devises a sanitizer-free test oracle to fuzz the eBPF verifier by embedding correctness checks in the BPF program.
Hive: A Hardware-assisted Isolated Execution Environment for eBPF on AArch64
Sec'24 Paper TalkPeihua Zhang, Chenggang Wu, Xiangyu Meng, Yinqian Zhang, Mingfan Peng, Shiyang Zhang, Bing Hu, Mengyao Xie, Yuanming Lai, Yan Kang, Zhe Wang improvingverifiersecurity
Proposes to replace the static analysis of the verifier with a hardware-based runtime isolation for ARM64.
End-to-End Mechanized Proof of a JIT-Accelerated eBPF Virtual Machine for IoT
CAV'24 PaperShenghao Yuan, Frédéric Besson, Jean-Pierre Talpin improvingjit
Correctness proof for the eBPF JIT compiler used in the micro-controller RIOT kernel.
Fast, Flexible, and Practical Kernel Extensions
SOSP'24 PaperKumar Kartikeya Dwivedi, Rishabh Iyer, Sanidhya Kashyap improvingverifier
Extends the Linux verifier with limited runtime checks and in a backward compatible way, significantly improving eBPF's expressibility.
Finding Correctness Bugs in eBPF Verifier with Structured and Sanitized Program
EuroSys'24 PaperHao Sun, Yiru Xu, Jianzhong Liu, Yuheng Shen, Nan Guan, Yu Jiang improvingverifier
Devises two test oracles to fuzz the eBPF verifier by relying on existing memory sanitation mechanisms in the Linux kernel.
eNetSTL: Towards an In-kernel Library for High-Performance eBPF-based Network Functions
EuroSys'24 PaperBin Yang, Dian Shen, Junxue Zhang, Hanlin Yang, Lunqi Zhao, Beilun Wang, Guyue Liu, Kai Chen improvingnetworking
Improves the performance of eBPF for networking applications with Rust-based extensions to its kfuncs, maps, and APIs.
MOAT: Towards Safe BPF Kernel Extension
Sec'24 Paper TalkHongyi Lu, Shuai Wang, Yechang Wu, Wanning He, Fengwei Zhang improvingverifiersecurity
Hardens eBPF in Linux by leveraging Intel MPK and adding runtime checks for helpers.
Cross Container Attacks: The Bewildered eBPF on Clouds
Sec'23 Paper TalkYi He, Roland Guo, Yunlong Xing, Xijia Che, Kun Sun, Zhuotao Liu, Ke Xu, Qi Li analysissecurity
Highlights that eBPF tracing programs can be used to escape container boundaries and the impact on cloud and online coding platforms.
λ-IO: A Unified IO Stack for Computational Storage
FAST'23 Paper TalkZhe Yang, Youyou Lu, Xiaojian Liao, Youmin Chen, Junru Li, Siyu He, Jiwu Shu usingstorage
Modifies eBPF to implement a unified IO stack spanning the kernel and storage devices, in the context of in-storage computing.
eHDL: Turning eBPF/XDP Programs into Hardware Designs for the NIC
ASPLOS'23 Paper TalkAlessandro Rivitti, Roberto Bifulco, Angelo Tulumello, Marco Bonola, Salvatore Pontarelli usingnetworking
Introduces a synthesis tool that generates FPGA pipelines for NICs from unmodified XDP programs.
Fuzz on the Beach: Fuzzing Solana Smart Contracts
CCS'23 PaperSven Smolka, Jens-Rene Giesen, Pascal Winkler, Oussama Draissi, Lucas Davi, Ghassan Karame, Klaus Pohl improvingsecuritymisc
Fuzzes Solana smart contracts, including those compiled to eBPF bytecode, by extending Solana's userspace eBPF VM with six bug oracles and coverage feedback.
xBGP: Faster Innovation in Routing Protocols
NSDI'23 Paper TalkThomas Wirtgen, Tom Rousseaux, Quentin De Coninck, Nicolas Rybowski, Randy Bush, Laurent Vanbever, Axel Legay, Olivier Bonaventure usingnetworking
Designs an extension mechanism for BGP using a userspace implementation of eBPF and several C verification tools to replace and extend the Linux verifier.
Taking 5G RAN Analytics and Control to a New Level
MobiCom'23 PaperXenofon Foukas, Bozidar Radunovic, Matthew Balkwill, Zhihua Lai usingnetworking
Proposes to extend virtualized Radio Access Network (vRAN) functions using a userspace BPF implementation and the PREVAIL verifier, with a new runtime check to bound the execution time.
Network-Centric Distributed Tracing with DeepFlow: Troubleshooting Your Microservices in Zero Code
SIGCOMM'23 Paper TalkJunxian Shen, Han Zhang, Yang Xiang, Xingang Shi, Xinrui Li, Yunxi Shen, Zijian Zhang, Yongxiang Wu, Xia Yin, Jilong Wang, Mingwei Xu, Yahui Li, Jiping Yin, Jianchang Song, Zhuofeng Li, Runjie Nie usingtracing
Presents a distributed tracing framework for troubleshooting microservices that leverages eBPF for data collection.
Tigger: A Database Proxy That Bounces with User-Bypass
VLDB'23 PaperMatthew Butrovich, Karthik Ramanathan, John Rollinson, Wan Shen Lim, William Zhang, Justine Sherry, Andrew Pavlo usingnetworkingoffload
Offloads PostgreSQL connection pooling and mirroring to the kernel using sockmap BPF programs.
Electrode: Accelerating Distributed Protocols with eBPF
NSDI'23 Paper TalkYang Zhou, Zezhou Wang, Sowmya Dharanipragada, Minlan Yu usingnetworkingoffload
Offloads common Paxos networking operations to tc and XDP to improve performance.
Verifying the Verifier: eBPF Range Analysis Verification
CAV'23 PaperHarishankar Vishwanathan, Matan Shachnai, Srinivas Narayana, Santosh Nagarakatte improvingverifier
Automatically and formally proves the ranges analysis of the Linux verifier.
EPF: Evil Packet Filter
ATC'23 Paper TalkDi Jin, Vaggelis Atlidakis, Vasileios P. Kemerlis analysissecurity
Presents an approach to bypass various kernel isolation techniques by abusing the cBPF infrastructure.
Sifter: Protecting Security-Critical Kernel Modules in Android through Attack Surface Reduction
MobiCom'22 PaperHsin-Wei Hung, Yingtong Liu, Ardalan Amiri Sani usingsecurity
Hardens security-critical kernel modules on Android by filtering syscall patterns using eBPF tracepoints and seccomp-ebpf, an extension of seccomp.
Tastes Great! Less Filling! High Performance and Accurate Training Data Collection for Self-Driving Database Management Systems
SIGMOD'22 PaperMatthew Butrovich, Wan Shen Lim, Lin Ma, John Rollinson, William Zhang, Yu Xia, Andrew Pavlo usingtracingmisc
Implements a BPF-based data collection framework for database management systems (DBMSes).
Domain Specific Run Time Optimization for Software Data Planes
ASPLOS'22 Paper TalkSebastiano Miano, Alireza Sanaee, Fulvio Risso, Gábor Rétvári, Gianni Antichi improvingnetworking
Optimizes datapath binaries, including eBPF bytecodes, based on traffic patterns.
End-to-end Mechanized Proof of an eBPF Virtual Machine for Micro-controllers
CAV'22 PaperShenghao Yuan, Frédéric Besson, Jean-Pierre Talpin, Samuel Hym, Koen Zandberg, Emmanuel Baccelli improvingverifier
Correctness proof for the eBPF interpreter and verifier used in the micro-controller RIOT kernel.
OSDI'22 Paper TalkSujin Park, Diyu Zhou, Yuchen Qian, Irina Calciu, Taesoo Kim, Sanidhya Kashyap usingmisc
Allows Linux users to customize kernel lock policies using eBPF and according to the applications' needs and hardware characteristics.
RapidPatch: Firmware Hotpatching for Real-Time Embedded Devices
Sec'22 Paper TalkYi He, Zhenhua Zou, Kun Sun, Zhuotao Liu, Ke Xu, Qian Wang, Chao Shen, Zhi Wang, Qi Li usingmisc
Implements a hotpatching mechanism for real-time OSes using eBPF, a modified verifier, and additional runtime checks.
Verified Programs can Party: Optimizing Kernel Extensions via Post-Verification Merging
EuroSys'22 PaperHsuan-Chi Kuo, Kai-Hsun Chen, Yicheng Lu, Dan Williams, Sibin Mohan, Tianyin Xu improvingmisc
Merges chains of BPF programs (from tail calls or multi-prog hooks) after verification to improve performance.
SPRIGHT: Extracting the Server from Serverless Computing! High-Performance eBPF-Based Event-Driven, Shared-Memory Processing
SIGCOMM'22 Paper TalkShixiong Qi, Leslie Monis, Ziteng Zeng, Ian-chin Wang, K. K. Ramakrishnan usingnetworking
Leverages various eBPF hooks to improve the performance of Knative, a container-based serverless platform.
Faster Software Packet Processing on FPGA NICs with eBPF Program Warping
ATC'22 Paper TalkMarco Bonola, Giacomo Belocchi, Angelo Tulumello, Marco Spaziani Brunella, Giuseppe Siracusano, Giuseppe Bianchi, Roberto Bifulco usingnetworking
Improves the performance of hXDP, an eBPF processor for FPGA NICs, via peephole optimization, thereby replacing series of instructions with optimized hardware implementations.
XRP: In-Kernel Storage Functions with eBPF
OSDI'22 Paper TalkYuhong Zhong, Haoyu Li, Yu Jian Wu, Ioannis Zarkadas, Jeffrey Tao, Evan Mesterhazy, Michael Makris, Junfeng Yang, Amy Tai, Ryan Stutsman, Asaf Cidon usingstorageoffload
Offloads processing to the NVMe drivers using BPF, to reduce kernel overhead in storage applications
Synthesizing Safe and Efficient Kernel Extensions for Packet Processing
SIGCOMM'21 Paper TalkQiongwen Xu, Michael D. Wong, Tanvi Wagle, Srinivas Narayana, Anirudh Sivaraman improvingnetworkingmisc
Proposes a synthesis-based compiler that optimizes eBPF programs while ensuring they still pass the Linux verifier.
The Ties that un-Bind: Decoupling IP from web services and sockets for robust addressing agility at CDN-scale
SIGCOMM'21 Paper TalkMarwan Fayed, Lorenz Bauer, Vasileios Giotsas, Sami Kerola, Marek Majkowski, Pavel Odinstov, Jakub Sitnicki, Taejoong Chung, Dave Levin, Alan Mislove, Christopher A. Wood, Nick Sullivan usingnetworking
Contributes sk_lookup to Linux, to make the IP/port to socket binding programmable using eBPF.
BMC: Accelerating Memcached using Safe In-Kernel Caching and Pre-Stack Processing
NSDI'21 Paper Talk SummaryYohann Ghigoff, Julien Sopena, Kahina Lazri, Antoine Blin, Gilles Muller usingnetworkingoffload
Speeds up Memcached with an XDP-based, transparent, first-level cache.
An Analysis of Speculative Type Confusion Vulnerabilities in the Wild
Sec'21 Paper TalkOfek Kirzner, Adam Morrison analysissecurity
Describes how eBPF can be leveraged to create speculative type confusion gadgets in the kernel.
Syrup: User-Defined Scheduling Across the Stack
SOSP'21 Paper TalkKostis Kaffes, Jack Tigar Humphries, David Mazières, Christos Kozyrakis usingnetworking
Proposes an eBPF-based framework to enable users to write application-specific scheduling policies for threads, network packets, and network connections.
Revisiting the Open vSwitch Dataplane Ten Years Later
SIGCOMM'21 Paper TalkWilliam Tu, Yi-Hung Wei, Gianni Antichi, Ben Pfaff usingnetworking
Describes how production experience with Open vSwitch over a decade led to the development of its new AF_XDP-based datapath.
Synthesizing JIT Compilers for In-Kernel DSLs
CAV'20 PaperJacob Van Geffen, Luke Nelson, Isil Dillig, Xi Wang, Emina Torlak improvingjit
Synthesizes eBPF and cBPF JIT compilers, which are proven to be formally correct, from DSL interpreters.
hXDP: Efficient Software Packet Processing on FPGA NICs
OSDI'20 Paper Talk SummaryMarco Spaziani Brunella, Giacomo Belocchi, Marco Bonola, Salvatore Pontarelli, Giuseppe Siracusano, Giuseppe Bianchi, Aniello Cammarano, Alessandro Palumbo, Luca Petrucci, Roberto Bifulco usingnetworking
Investigates the execution of XDP programs on FPGA NICs by implementing an interpreter.
Specification and Verification in the Field: Applying Formal Methods to BPF Just-in-Time Compilers in the Linux Kernel
OSDI'20 Paper TalkLuke Nelson, Jacob Van Geffen, Emina Torlak, Xi Wang improvingjit
Applies formal verification techniques to the eBPF JIT compilers and implements a new formally-verified JIT compiler for 32-bit RISC-V.
LBM: A Security Framework for Peripherals within the Linux Kernel
S&P'19 Paper TalkDave Tian, Grant Hernandez, Joseph I. Choi, Vanessa Frost, Peter C. Johnson, Kevin R. B. Butler usingsecuritymisc
Compiles filtering rules for peripherals subsystems in Linux (USB, Bluetooth, NFC) into eBPF programs.
Scaling Symbolic Evaluation for Automated Verification of Systems Code with Serval
SOSP'19 Paper TalkLuke Nelson, James Bornholt, Ronghui Gu, Andrew Baumann, Emina Torlak, Xi Wang improvingverifier
Proposes a framework to developing verifiers for system software, including eBPF, by lifting existing interpreters under symbolic execution.
Extension Framework for File Systems in User Space
ATC'19 Paper TalkAshish Bijlani, Umakishore Ramachandran usingstorageoffload
Enables eBPF support in the FUSE interface to improve the performance of user-space file systems by offloading operations to the kernel.
Pluginizing QUIC
SIGCOMM'19 Paper TalkQuentin De Coninck, François Michel, Maxime Piraux, Florentin Rochet, Thomas Given-Wilson, Axel Legay, Olivier Pereira, Olivier Bonaventure usingnetworking
Designs an extension mechanism for QUIC using a userspace implementation of eBPF with SFI-like runtime checks.
Simple and Precise Static Analysis of Untrusted Linux Kernel Extensions
PLDI'19 Paper Talk SummaryElazar Gershuni, Nadav Amit, Arie Gurfinkel, Nina Narodytska, Jorge A. Navas, Noam Rinetzky, Leonid Ryzhyk, Mooly Sagiv improvingverifier
Introduces PREVAIL, an alternative to the Linux eBPF verifier based on abstract interpretation and now used in Windows.
The Design and Implementation of Hyperupcalls
ATC'18 PaperNadav Amit, Michael Wei usingmisc
Leverages eBPF to bridge the semantic gap of virtualization, by letting hypervisors execute verified code from the guests.
Jitk: A Trustworthy In-Kernel Interpreter Infrastructure
OSDI'14 Paper TalkXi Wang, David Lazar, Nickolai Zeldovich, Adam Chlipala, Zachary Tatlock improvingjit
Proposes a formally-verified infrastructure to compile high-level rules into cBPF bytecode and machine code.
Swift: A Fast Dynamic Packet Filter
NSDI'08 PaperZhenyu Wu, Mengjun Xie, Haining Wang improvingnetworking
Proposes an alternative to cBPF for packet filtering, with a CISC ISA and support for SIMD.
Safe Kernel Extensions Without Run-Time Checking
OSDI'96 PaperGeorge C. Necula, Peter Lee improvingverifier
Proposes kernel extensions in the form of proof-carrying code and compares it to cBPF.
The BSD Packet Filter: A New Architecture for User-level Packet Capture
USENIX Winter'93 PaperSteven McCanne, Van Jacobson foundationnetworking
The original cBPF paper, describing a register-based packet filter for BSD.
Thanks to Kahina for her reviews and for reporting multiple bugs with the early version of the selectors.
Of course, I can’t really escape chosing a method to select papers, so it’s not as if this is completely objective either. ↩
To see papers from all conferences listed by CSRankings, including those not selected by default, you can uncheck the last toggle below. ↩