Uncontrolled memory consumption is a kind of critical software security weaknesses. It can also become a security-critical vulnerability when attackers can take control of the input to consume a large amount of memory and launch a Denial-of-Service attack. However, detecting such vulnerability is challenging, as the state-of-the-art fuzzing techniques focus on the code coverage but not memory consumption. To this end, we propose a memory usage guided fuzzing technique, named MemLock, to generate the excessive memory consumption inputs and trigger uncontrolled memory consumption bugs. The fuzzing process is guided with memory consumption information so that our approach is general and does not require any domain knowledge. We perform a thorough evaluation for MemLock on 14 widely-used real-world programs. Our experiment results show that MemLock substantially outperforms the state-of-the-art fuzzing techniques, including AFL, AFLfast, PerfFuzz, FairFuzz, Angora and QSYM, in discovering memory consumption bugs. During the experiments, we discovered many previously unknown memory consumption bugs and received 15 new CVEs.
|Title of host publication||Proceedings - 2020 ACM/IEEE 42nd International Conference on Software Engineering, ICSE 2020|
|Number of pages||13|
|Publication status||Published - 27 Jun 2020|
|Event||42nd International Conference on Software Engineering - Seoul, Korea, Republic of|
Duration: 5 Oct 2020 → 11 Oct 2020
Conference number: ICSE 2020
|Name||Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering|
|Conference||42nd International Conference on Software Engineering|
|Country/Territory||Korea, Republic of|
|Period||5/10/20 → 11/10/20|
Bibliographical noteFunding Information:
This work was supported in part by the National Natural Science Foundation of China under Grants No. 61772347, 61836005, 61972260, 61772408, 61721002, Ant Financial Services Group through Ant Financial Research Program, Guangdong Basic and Applied Basic Research Foundation under Grant No. 2019A1515011577, National Key R&D Program of China under Grant No. 2018YFB0803501.
© 2020 Association for Computing Machinery.
Copyright 2020 Elsevier B.V., All rights reserved.