arrow
Return

sBugChecker: A Systematic Framework for Detecting Solidity Compiler-Introduced Bugs

delete2025-01-01
delete0
PRE
AI
童
童飞 (Fei Tong) *
Z
Zihao Li
程光 cover
程光 (Guang Cheng)
Y
Yujian Zhang
H
Heng Li
DOI:10.1109/TIFS.2025.3608660delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
A compiler converts smart contract source code into bytecode, ensuring behavior consistency between them. However, as compiler is also a program, it may contain bugs that disrupt this consistency, known as Compiler-Introduced Bugs (CIBs). Of the latest 4,857 verified smart contracts coded in Solidity, approximately 58% still use compilers that contain at least one CIB. These CIBs can be exploited by attackers to bypass security checks or inject malicious data, leading to significant security issues, which becomes even more serious for smart contracts in blockchain as they cannot be modified after being deployed. To this end, this paper proposes sBugChecker, to the best of our knowledge, the first systematic framework designed to automatically and effectively detect CIBs for smart contracts coded in Solidity. sBugChecker can be readily extended with the rule customization suite we propose based on domain specific language. Additionally, it employs two static analytical methods, i.e., pattern matching, and symbolic execution, to identify CIBs' triggering conditions and confirm their impacts, broadening its detection scope and improving its detection efficiency. To evaluate sBugChecker's performance, we construct a CIB mutated smart contract dataset, which is the first publicly-available one for this study. According to the evaluation based on this dataset, sBugChecker performs exceptionally well, with detection precision, recall, and F-measure on average achieving 96.6%, 95.5% and 96.0%, respectively. Moreover, sBugChecker has been applied to successfully discover real-world deployed smart contracts capable of triggering CIBs.
Keywords:
Smart contracts
Security
Codes
Source coding
Fuzzing
Computer bugs
Pattern matching
Systematics
Memory
Logic
Smart contract
compiler-introduced bug
pattern matching
symbolic execution
compiler fuzzing

Journal

IEEE Transactions on Information Forensics and Security cover
IEEE Transactions on Information Forensics and Security
IF:
8
Papers:
5.3K
Citations:
2.3W

Organization

S
southeast university - china
Scholars:
5.3W
Papers: 4.9W
Citations: 57
Cited Papers

Cited Papers

Distributed Algorithms to Compute Walrasian Equilibrium in Mobile Crowdsensing
err2017-05-01
err95
errOAAI
errDuan, Xiaoming; Zhao, Chengcheng; He, Shibo; Cheng, Peng; Zhang, Junshan
errShare
errSave
errShare
errSave
Introducing English Linguistics
err
IF0
err2009-05-14
err0
PREAI
errMeyer,Charles F.
errShare
errSave
Making no-fuss compiler fuzzing effective
err2022-03-19
err0
PREAI
errGroce,Alex; van Tonder,Rijnard; Kalburgi,Goutamkumar Tulajappa; Le Goues,Claire
errShare
errSave
Towards Understanding the Bugs in Solidity Compiler
err2024-09-11
err0
PREAI
errMa,Haoyang; Zhang,Wuqi; Shen,Qingchao; Tian,Yongqiang; Chen,Junjie; Cheung,Shing-Chi
errShare
errSave
Modeling and Detection Scheme for Zero-Dynamics Attack on Wind Power System
err2024-01-01
err7
PREAI
errWang, Zhe; Zhang, Heng; Cao, Xianghui; Liu, Endong; Li, Hongran; Zhang, Jian
errShare
errSave
researcher View more