IEEE Transactions on Information Forensics and Security · 2025 · 51 citations · 29 references
ComputingComputer ScienceCybersecurityComputer SecuritySecurity ArchitectureVulnerability AnalysisApplication Security TestingFuzz TestingSoftware Vulnerability DiscoveryStatic Vulnerability AnalysisVulnerability ManagementDirected FuzzingGreybox FuzzingSmart Contract Vulnerability AnalysisStateful FuzzingVulnerability Discovery
Smart contracts, the cornerstone of decentralized applications, have become increasingly prominent in revolutionizing the digital landscape. However, vulnerabilities in smart contracts pose great risks to user assets and undermine overall trust in decentralized systems. Fuzzing, a prominent security testing technique, is extensively explored to detect vulnerabilities. But current smart contract fuzzers fall short of expectations in testing efficiency for two primary reasons. Firstly, smart contracts are stateful programs, and existing approaches, primarily coverage-guided, lack effective feedback from the contract state. Consequently, they struggle to effectively explore the contract state space. Secondly, coverage-guided fuzzers, aiming for comprehensive program coverage, may lead to a wastage of testing resources on benign code areas. This wastage worsens in smart contract testing, as the mix of code and state spaces further complicates comprehensive testing. To address these challenges, we propose V<sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">ulseye</small>, a stateful directed graybox fuzzer for smart contracts guided by vulnerabilities. Different from prior works, V<sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">ulseye</small> achieves stateful directed fuzzing by prioritizing testing resources to code areas and contract states that are more prone to vulnerabilities. We introduce <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Code Targets</i> and <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">State Targets</i> into fuzzing loops as the testing targets of V<sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">ulseye</small>. We use static analysis and pattern matching to pinpoint <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Code Targets</i>, and propose a scalable backward analysis algorithm to specify <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">State Targets</i>. We design a novel fitness metric that leverages feedback from both the contract code space and state space, directing fuzzing toward these targets. With the guidance of code and state targets, V<sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">ulseye</small> alleviates the wastage of testing resources on benign code areas and achieves effective stateful fuzzing. In comparison with state-of-the-art fuzzers, V<sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">ulseye</small> demonstrated superior effectiveness and efficiency. Notably, it uncovered 4,845 vulnerabilities in 42,738 real-world smart contracts, outperforming existing approaches by up to <inline-formula xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink"> <tex-math notation="LaTeX">$9.7\times $ </tex-math></inline-formula>, and identified 11 previously unknown vulnerabilities within the top 50 Ethereum DApps, involving approximately 2,500,000 USD.
29
Making Smart Contracts Smarter
Loi Luu, Duc-Hiep Chu, Hrishi Olickel et al. · 2016 · 2.2K citations
Petar Tsankov, Andrei Dan, Dana Drachsler-Cohen et al. · 2018 · 1K citations
ContractFuzzer: fuzzing smart contracts for vulnerability detection
Bo Jiang, Ye Liu, W. K. Chan · 2018 · 798 citations · Full text
Slither: A Static Analysis Framework for Smart Contracts
2019 · 758 citations · Full text
Marcel Böhme, Van-Thuan Pham, Manh-Dung Nguyen et al. · 2017 · 717 citations