Please use this identifier to cite or link to this item: http://hdl.handle.net/10397/99835
PIRA download icon_1.1View/Download Full Text
Title: PrintFuzz : fuzzing Linux drivers via automated virtual device simulation
Authors: Ma, Z
Zhao, B
Ren, L
Li, Z
Ma, S
Luo, X 
Zhang, C
Issue Date: 18-Jul-2022
Source: ISSTA 2022: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis, Virtual South Korea, July 18 - 22, 2022, p. 404–416
Abstract: Linux drivers share the same address space and privilege with the core of the kernel but have a much larger code base and attack surface. The Linux drivers are not well tested and have weaker security guarantees than the kernel. Missing support from hardware devices, existing fuzzing solutions fail to cover a large portion of the driver code, e.g., the initialization code and interrupt handlers. In this paper, we present PrIntFuzz, an efficient and universal fuzzing framework that can test the overlooked driver code, including the PRobing code and INTerrupt handlers. PrIntFuzz first extracts knowledge from the driver through inter-procedural field-sensitive, path-sensitive, and flow-sensitive static analysis. Then it utilizes the information to build a flexible and efficient simulator, which supports device probing, hardware interrupts emulation and device I/O interception. Lastly, PrIntFuzz applies a multi-dimension fuzzing strategy to explore the overlooked code. We have developed a prototype of PrIntFuzz and successfully simulated 311 virtual PCI (Peripheral Component Interconnect) devices, 472 virtual I2C (Inter-Integrated Circuit) devices, 169 virtual USB (Universal Serial Bus) devices, and found 150 bugs in the corresponding device drivers. We have submitted patches for these bugs to the Linux kernel community, and 59 patches have been merged so far. In a control experiment of Linux 5.10-rc6, PrIntFuzz found 99 bugs, while the state-of-the-art fuzzer only found 50. PrIntFuzz covers 11,968 basic blocks on the latest Linux kernel, while the state-of-the-art fuzzer Syzkaller only covers 2,353 basic blocks.
Keywords: Device Driver
Fuzz
Interrupt
Publisher: Association for Computing Machinery
ISBN: 978-1-4503-9379-9
DOI: 10.1145/3533767.3534226
Description: ISSTA '22: 31st ACM SIGSOFT International Symposium on Software Testing and Analysis, July 18 - 22, 2022, Virtual South Korea
Rights: © 2022 Copyright held by the owner/author(s). This work is licensed under a Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0/).
The following publication Ma, Z., Zhao, B., Ren, L., Li, Z., Ma, S., Luo, X., & Zhang, C. (2022, July). PrIntFuzz: fuzzing Linux drivers via automated virtual device simulation. In Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis (pp. 404-416) is available at https://doi.org/10.1145/3533767.3534226.
Appears in Collections:Conference Paper

Files in This Item:
File Description SizeFormat 
3533767.3534226.pdf597.32 kBAdobe PDFView/Open
Open Access Information
Status open access
File Version Version of Record
Access
View full-text via PolyU eLinks SFX Query
Show full item record

Page views

149
Last Week
8
Last month
Citations as of Nov 9, 2025

Downloads

257
Citations as of Nov 9, 2025

SCOPUSTM   
Citations

20
Citations as of Dec 19, 2025

WEB OF SCIENCETM
Citations

15
Citations as of Dec 18, 2025

Google ScholarTM

Check

Altmetric


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.