RBZZER: A Directed Fuzzing Technique for Efficient Detection of Memory Leaks via Risk Area Analysis
Source abstract
Abstract
Memory leak is a common software vulnerability that can decrease the reliability of an application and, in severe cases, even cause program crashes. If there are intentionally triggerable memory leak vulnerabilities in a program, attackers can exploit these bugs to launch denial-of-service attacks or induce the program to exhibit unexpected behaviors due to low memory conditions. Existing fuzzing techniques primarily focus on improving code coverage, and specialized fuzzing techniques for individual memory-related defects like uncontrolled memory allocation do not address memory leak vulnerabilities. MemLock is the first fuzzing technique to address memory consumption vulnerabilities including memory leakage. However, the coverage-centric guidance mechanism of MemLock introduces a degree of aimlessness in the testing process, that results in low seed quality and slow bug exposure speed. To address this issue, we propose a risk areas guidance-based fuzzing technique called RBZZER. First, RBZZER retains MemLock’s memory consumption-guided mechanism and introduces a novel distance-guided approach to expedite the arrival of fuzzing at the potential memory areas. Second, we introduce a new seed scheduling strategy called risk areas-based seed scheduling, which classifies seeds based on potential memory leak areas in the program and further schedules them, thereby effectively improving the efficiency of discovering memory leak vulnerabilities. Experiments demonstrate that RBZZER outperforms the state-of-the-art fuzzing techniques by finding 52% more program unique crashes than the second-best counterpart. In particular, RBZZER can discover the amount of memory leakage at least 112% more than the other baseline fuzzers. Besides, RBZZER detects memory leaks at an average speed that is 9.10x faster than MemLock.
Source: openalex_inverted_index · Quality: baseline
Research context
OpenAlex topics: Physical Unclonable Functions (PUFs) and Hardware Security · Integrated Circuits and Semiconductor Failure Analysis · VLSI and Analog Circuit Testing
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
References (54)
Show source-provided references
1. Michal Z. American fuzzy lop. 2013. [cited 2025 May 21]. Available from: https://lcamtuf.coredump.cx/afl/.
2. Hodován · Integrated formal methods. IFM 2019. Lecture notes in computer science · 2019 · 11918
3. Minerva: browser API fuzzing with dynamic mod-ref analysis
4. Fuzzware: using precise MMIO modeling for effective firmware fuzzing
5. μAFL: non-intrusive feedback-driven fuzzing for microcontroller firmware
6. Efficient ECU analysis technology through structure-aware CAN fuzzing10.1109/ACCESS.2022.3151358 ↗
7. Directed greybox fuzzing
8. Grammar-based whitebox fuzzing
9. Godefroid P, Levin MY, Molnar DA. Automated whitebox fuzz testing. NDSS. 2008 [cited 2025 May 21]; 8:151–66. Available from: https://www.ndss-symposium.org/ndss2008/automated-whitebox-fuzz-testing/.
10. Morest: model-based RESTful API testing with execution feedback
11. REST API fuzzing by coverage level guided blackbox testing
12. Detecting critical bugs in SMT solvers using blackbox mutational fuzzing
13. PATA: fuzzing with path aware taint analysis
14. One fuzzing strategy to rule them all
15. Skyfire: data-driven seed generation for fuzzing
16. Wang · Not all coverage measurements are equal: fuzzing by coverage accounting for input prioritization · 2020 · 23
17. One engine to fuzz’em all: generic language processor testing with semantic validation
18. MITRE. CVE-2018-17985; 2018 [cited 2025 May 21]. Available from: https://www.cve.org/CVERecord?id=CVE-2018-17985.
19. MITRE. CVE-2019-6262; 2019 [cited 2025 May 21]. Available from: https://www.cve.org/CVERecord?id=CVE-2019-6262.
20. Detection of distributed denial of service (DDoS) attacks in IOT based monitoring system of banking sector using machine learning models10.3390/su14148374 ↗
21. FUZE: towards facilitating exploit generation for kernel Use-After-Free vulnerabilities
22. Efficient greybox fuzzing of applications in Linux-based IoT devices via enhanced user-mode emulation
23. Typestate-guided fuzzer for discovering use-after-free vulnerabilities
24. HTFuzz: heap operation sequence sensitive fuzzing
25. Constraint-guided directed greybox fuzzing
26. Memlock: memory usage guided fuzzing
27. Coverage-based greybox fuzzing as markov chain
28. Perffuzz: automatically generating pathological inputs
29. QSYM: a practical concolic execution engine tailored for hybrid fuzzing
30. MITRE. CWE:401: missing release of memory after effective lifetime. [cited 2025 May 21]. Available from: https://cwe.mitre.org/data/definitions/401.html.
31. Fuzzing: progress, challenges, and perspectives
32. MITRE. CVE-2019-20023. 2019 [cited 2025 May 21]. Available from: https://www.cve.org/CVERecord?id=CVE-2019-20023.
33. GNOME. libxml2. 2024 [cited 2025 May 21]. Available from: https://gitlab.gnome.org/GNOME/libxml2.
34. JasPer. jasper. 2024 [cited 2025 May 21]. Available from: https://github.com/jasper-software/jasper/tree/release-2.0.
35. Patrice L, Sébastien LA. Xpdf-4.00; 2024 [cited 2025 May 21]. Available from: https://github.com/kermitt2/xpdf-4.00.
36. DynamoRio. DynamoRio; 2024 [cited 2025 May 21]. Available from: https://github.com/DynamoRIO/dynamorio.
37. Gaasedelen M. Lighthouse; 2024 [cited 2025 May 21]. Available from: https://github.com/gaasedelen/lighthouse.
38. Windranger: a directed greybox fuzzer driven by deviation basic blocks
39. UNIFUZZ: a holistic and pragmatic metrics-driven platform for evaluating fuzzers
40. Collafl: path sensitive fuzzing
41. Evaluating fuzz testing
42. Fairfuzz: a targeted mutation strategy for increasing greybox fuzz testing coverage
43. Foundation FS. GNU Binutils; 2024 [cited 2025 May 21]. Available from: https://github.com/bminor/binutils-gdb/tree/users/hjl/linux/release/2.29.51.0.1.
44. libming. libming; 2024 [cited 2025 May 21]. Available from: https://github.com/libming/libming/tree/ming-0_4_8.
45. Systems A. Bento4; 2024 [cited 2025 May 21]. Available from: https://github.com/axiomatic-systems/Bento4/tree/v1.5.1-620.
46. A practical guide for using statistical tests to assess randomized algorithms in software engineering
47. Smoke: scalable path-sensitive memory leak detection for millions of lines of code
48. PCA: memory leak detection using partial call-path analysis
49. Learning to detect memory-related vulnerabilities10.1145/3624744 ↗
50. Cerion AB, Christian B, Jeremy F, Paul F, Tom H, Petar J et al. Valgrind; 2024 [cited 2025 May 21]. Available from: https://valgrind.org/.
51. Hawkeye: towards a desired directed grey-box fuzzer
52. Beacon: directed grey-box fuzzing with provable path pruning
53. Vulnerability-oriented directed fuzzing for binary programs10.1038/s41598-022-07355-5 ↗
54. Speeding-up fuzzing through directional seeds10.1007/s10207-024-00953-6 ↗