Security Verification of PCI-Based CXL Drivers in the Linux Kernel Using ESBMC
This repository contains the operational models and test scripts used for the formal verification of the CXL drivers in the Linux Kernel, specifically focusing on the cxl_map_regs and cxl_probe_regs functions. The models simulate the behavior of these functions, providing detailed assertions for memory safety, register probing, and concurrency. Using ESBMC (Efficient SMT-Based Bounded Model Checker), the code performs unbounded verification by fully unrolling loops to capture all possible iterations. The verification tests, which include handling valid and invalid inputs, concurrency scenarios, and error cases, were executed across multiple kernel configurations, identifying several potential vulnerabilities in memory handling and register initialisation. The repository includes all necessary files to replicate the verification process, along with the CXL driver source code and test results.
Institutions
- University of Manchester (GB)
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2024-09-05
- DOI
- https://doi.org/10.5281/zenodo.13692741
- Primary Topic
- Security and Verification in Computing
- Type
- article
- Field-Weighted Citation Impact
- 0.00