Back to Search Start Over

EVMFuzz: Differential fuzz testing of Ethereum virtual machine.

Authors :
Fu, Ying
Ren, Meng
Ma, Fuchen
Yang, Xin
Shi, Heyuan
Li, Shanshan
Liao, Xiangke
Source :
Journal of Software: Evolution & Process. Apr2024, Vol. 36 Issue 4, p1-15. 15p.
Publication Year :
2024

Abstract

The vulnerabilities in Ethereum virtual machine (EVM) may lead to serious problems for the Ethereum ecosystem. With lots of techniques being developed for the validation of smart contracts, the testing of EVM has not been well‐studied. In this paper, we propose EVMFuzz, the first that uses the differential fuzzing technique to detect vulnerabilities in EVM. The core idea of EVMFuzz is to continuously generate seed contracts for different EVMs' execution, so as to find as many inconsistencies among execution results as possible, and eventually discover vulnerabilities with output cross‐referencing. First, we present the evaluation metric for the internal inconsistency indicator. Then, we construct seed contracts via predefined mutators and employ a dynamic priority scheduling algorithm to guide seed contract selection and maximize the inconsistency. Finally, we leverage different EVMs as cross‐referencing oracles avoiding manual checking. For evaluation, we selected four widely used EVMs for the test, conducted large‐scale mutation on 36,295 real‐world smart contracts, and generated 253,153 smart contracts as initial seeds. Accompanied by manual root cause analysis, we found five previously unknown security bugs and all had been included in the common vulnerabilities and exposures (CVE) database. This paper proposes EVMFuzz, the first that uses the differential fuzzing technique to detect vulnerabilities in Ethereum virtual machine (EVM). EVMFuzz found five previously unknown security bugs in four widely used EVMs, and all had been included in the common vulnerabilities and exposures (CVE) database. [ABSTRACT FROM AUTHOR]

Details

Language :
English
ISSN :
20477473
Volume :
36
Issue :
4
Database :
Academic Search Index
Journal :
Journal of Software: Evolution & Process
Publication Type :
Academic Journal
Accession number :
176450859
Full Text :
https://doi.org/10.1002/smr.2556