Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Conferences, Workshops, Symposiums, and Seminars
  4. QMSan: Efficiently Detecting Uninitialized Memory Errors During Fuzzing
 
conference paper

QMSan: Efficiently Detecting Uninitialized Memory Errors During Fuzzing

Marini, Matteo
•
D’Elia, Daniele Cono
•
Payer, Mathias  
Show more
2025
Proceedings 2025 Network and Distributed System Security Symposium
Network and Distributed System Security Symposium 2025

Fuzzing evolved into the most popular technique to detect bugs in software. Its combination with sanitizers has shown tremendous efficacy in uncovering memory safety errors, such as buffer overflows, that haunt C and C++ programmers. However, an important class of such issues, the so-called use-of-uninitialized-memory (UUM) errors, struggles to gain similar benefits from fuzzing endeavors. The only fuzzer-compatible UUM sanitizer available to date, MSan, requires that all libraries are fully instrumented. Unlike address sanitization, for which partial instrumentation results in false negatives (missed detection of bugs), UUM sanitizers require complete instrumentation to avoid false positives, hampering testing at scale. Yet, full-stack compiler-based instrumentation can be a daunting prospect for compatibility and practicality. As a result, many programs are left untested for UUM bugs.

In this paper, we propose an efficient multi-layer, opportunistic design that does not require (source-based) recompilation of all code without harming accuracy. The multiplicity of executions when fuzzing offers us the opportunity to learn what any encountered false positive looks like, and later ignore them when we meet them again with new test cases. Such an avenue is feasible only if one can resort to fast techniques to effectively discriminate candidate errors, or false negatives will then occur.

We show how to realize this design by using the dynamic binary translation of QEMU for compatibility and lightweight code analysis techniques to achieve scalability and accuracy. As a result, we obtain a fuzzer-friendly, performant sanitizer, QMSan, that effectively tackles current practicality challenges of UUM error detection. On a collection of 10 open-source and 5 proprietary programs, QMSan exposed 44 new UUM bugs. In our tests, QMSan incurs slowdowns of 1.51x over QEMU and 1.55x over the compiler-based instrumentation of MSan, showing no false positives and false negatives. QMSan is open-source.

  • Details
  • Metrics
Type
conference paper
DOI
10.14722/ndss.2025.241133
Author(s)
Marini, Matteo
D’Elia, Daniele Cono
Payer, Mathias  

École Polytechnique Fédérale de Lausanne

Querzoni, Leonardo
Date Issued

2025

Publisher

Internet Society

Publisher place

Reston, VA

Published in
Proceedings 2025 Network and Distributed System Security Symposium
URL

Video

https://youtu.be/4AL-SGWHpJM

Slides

https://www.ndss-symposium.org/wp-content/uploads/11D-f1133-Marini.pdf
Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
HEXHIVE  
Event nameEvent acronymEvent placeEvent date
Network and Distributed System Security Symposium 2025

NDSS 2025

San Diego, CA, USA

2025-02-24 - 2025-02-28

Available on Infoscience
January 9, 2026
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/257745
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés