PeerJ Computer Science (Sep 2023)

DAFuzz: data-aware fuzzing of in-memory data stores

  • Yingpei Zeng,
  • Fengming Zhu,
  • Siyi Zhang,
  • Yu Yang,
  • Siyu Yi,
  • Yufan Pan,
  • Guojie Xie,
  • Ting Wu

DOI
https://doi.org/10.7717/peerj-cs.1592
Journal volume & issue
Vol. 9
p. e1592

Abstract

Read online Read online

Fuzzing has become an important method for finding vulnerabilities in software. For fuzzing programs expecting structural inputs, syntactic- and semantic-aware fuzzing approaches have been particularly proposed. However, they still cannot fuzz in-memory data stores sufficiently, since some code paths are only executed when the required data are available. In this article, we propose a data-aware fuzzing method, DAFuzz, which is designed by considering the data used during fuzzing. Specifically, to ensure different data-sensitive code paths are exercised, DAFuzz first loads different kinds of data into the stores before feeding fuzzing inputs. Then, when generating inputs, DAFuzz ensures the generated inputs are not only syntactically and semantically valid but also use the data correctly. We implement a prototype of DAFuzz based on Superion and use it to fuzz Redis and Memcached. Experiments show that DAFuzz covers 13~95% more edges than AFL, Superion, AFL++, and AFLNet, and discovers vulnerabilities over 2.7× faster. In total, we discovered four new vulnerabilities in Redis and Memcached. All the vulnerabilities were reported to developers and have been acknowledged and fixed.

Keywords