Published August 8, 2018 | Version v1.0

gongbell/ContractFuzzer: The first release of ContractFuzzer Tool for ASE 2018

Authors/Creators

  • 1. Beihang University

Description

This is the first release version of ContractFuzzer Tool for the ASE 2018 paper "Fuzzing Smart Contracts for Vulnerability Detection".

Notes

Decentralized cryptocurrencies feature the use of blockchain technology to transfer value among peers on the network without central agency. Smart contracts are programs running on top of the blockchain consensus protocol to enable people make agreement via blockchain while minimizing trust. While millions of smart contracts exist to help build decentralized applications, the security vulnerabilities within the smart contracts pose big threat to their applications. Indeed, many critical security vulnerabilities within smart contracts on Ethereum platform have caused huge financial loss to its users. In this work, we propose ContractFuzzer, a fuzzing framework to test Ethereum smart contracts for security vulnerabilities. We propose test oracles for detecting security vulnerabilities, generate fuzzing input based on the ABI specifications of the smart contracts, instrument the EVM to collect execution logs characterizing smart contracts runtime behavior and analyze the logs to report vulnerabilities. Our fuzzing on 6991 smart contracts has precisely detected 459 vulnerabilities with an average true positive rate of 98.91%. In particular, ContractFuzzer has detected the vulnerability of the DAO contract that led to $60 million loss and the vulnerabilities of Parity Wallet that led to the loss of $30 million and the freezing of $150 million worth of Ether.

Files

gongbell/ContractFuzzer-v1.0.zip

Files (1.0 GB)

Name Size
md5:6b91fe709893623908286a80ed677944
1.0 GB Preview Download

Additional details

Related works

References

  • Bo Jiang, Ye Liu, and W.K. Chan. 2018. ContractFuzzer: Fuzzing Smart Contracts for Vulnerability Detection. In Proceedings of the 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE'18), September 3–7, Montpellier, France, 10 pages. https://doi.org/10.1145/3238147.3238177