Demystifying Exploitable Bugs in Smart Contracts
Solidity
1,824
124 commits
updated Jun 19, 2025

This project aims to provide a valuable resource for Web3 developers and security analysts by facilitating their understanding of exploitable bugs in smart contracts. We conduct a thorough analysis of exploitable bugs extracted from code4rena and classify each bug according to its nature.
Our initial research suggests that a notable proportion of exploitable bugs in smart contracts are functional bugs, which cannot be detected using simple and general oracles like reentrancy. We aim to raise awareness about the significance of such bugs and encourage practitioners to develop more sophisticated and nuanced automatic semantical oracles to detect them.
π° πππππππππππ ππππππ ππ ππ‘πππππππππ ππππ ππ πππππ πππππππππ ππππ πππππ πππ ππππππππ’ ππ ππππππππππ ππππ, π ππππ ππππππ ππ ππππππππ πππππ ππππππ πππ πππππππ πππππππ.
Please be aware that this repository is currently undergoing active development, and the data may change over time due to ongoing code4rena contests.
The dataset is organized into four folders:
We classify the surveyed bugs into three main categories based on their nature:
As classifying functional bugs can be ambiguous, we welcome suggestions to improve our classification standards. You can find more detailed label information in our documentation, and we encourage you to refer to our current classification guidelines for more information.
Our goal is to create a comprehensive list of vulnerability detection techniques that will be a valuable resource for Web3 developers and security analysts. We will focus on two main categories:
We warmly welcome any additional suggestions or contributions from the community to help expand and improve the list.
We believe that future web3 security efforts will prioritize identifying functional bugs and developing corresponding oracles. To this end, we intend to compile a list of techniques that provide guidance in the creation of automatic semantic oracles. These techniques will be sourced from various materials, such as peer-reviewed research papers, pre-prints, industry tools, and online resources.
This section will include open-source techniques that are publicly available and currently in active development. These techniques can be used either directly by Web3 developers and security analysts or as building blocks for other tools. We give priority to source-code level techniques, which are better suited for Web3 development and auditing contexts.
| Technique | Developer(s) | Description | Security-related Keywords |
|---|---|---|---|
| Slither | Trail of Bits | Static Analysis Framework | Vulnerability Detectors, SlithIR |
| Aderyn | Cyfrin | Static Analysis Framework | Static Analyzer, Custom Detectors, Markdown Reports |
| Foundry | Paradigm | Development Toolchain | Fuzzing, Stateful Fuzzing (Invariant Testing), Differential Testing |
| Echidna | Trail of Bits | Fuzzer | Fuzzing , Stateful Fuzzing (Invariant Testing), CI/CD |
| Optik | Trail of Bits | Hybrid Fuzzer (Symbolic Execution + Fuzzing) | Fuzzing, Stateful Fuzzing, Symbolic Execution |
| Woke | Ackee Blockchain | Development Toolchain | Cross-chain Testing, Invariant Testing, Vulnerability Detectors, IR |
| 4naly3er | Picodes | Static Scanner | Code4rena Pre-content Testing |
| Manticore | Trail of Bits | Symbolic Execution Tool | Symbolic Execution, Property Testing |
| Halmos | a16z | Symbolic Bounded Model Checker | Symbolic Execution, Bound Checker |
| Solidity SMTChecker | Ethereum Foundation | Formal Verification by Symbolic Execution | Solidity, Formal Verification, Symbolic Execution |
| Mythril | Consensys | Symbolic Execution Tool | Symbolic Execution, On-Chain Analysis, Vulnerability Detectors, Taint Analysis |
| Pyrometer [WIP] | Nascent | Symbolic Execution Tool | Symbolic Execution, Abstract Interpretation |
| greed | UCSB Seclab | Static/Symbolic Analysis Framework | Symbolic Execution, Bound Checker, Static Analyses, Property Testing |
| ethpwn | ethpwn | Dynamic analysis/Debugging | EVM simulations, EVM debugging |
| Technique | Language | Description | Security-related Keywords |
|---|---|---|---|
| Move Prover | Move | Formal Specification and Verification | Formal Verification |
| Resource | Keywords |
|---|---|
| Academic Smart Contract Papers | Academic Paper List |
| DeFi Hacks Reproduce - Foundry | Attack Replication |
| Smart Contract Security Verification Standard | Security Checklist |
| Awesome MythX Smart Contract Security Tools | Security Analysis Service |
| Common Security Properties of Smart Contracts | Security Compliance Suite |
| Immunefi PoC Templates | PoC Templates |
| Awesome MEV Resources | MEV Resources |
| Front-Running Attack Benchmark Construction and Vulnerability Detection Technique Evaluation | Front-Running Dataset |
| Ultimate DeFi & Blockchain Research Base | Blockchain Security All-in-One |
| Common Fork Bugs | Exploit Dataset |
We welcome all types of contributions to our project, including but not limited to:
results/contests.csvFurther details can be found in our contribution guidelines.
If you are using our dataset for an academic publication, we would really appreciate a citation to the following work:
@inproceedings{DBLP:conf/icse/ZhangZXL23,
author = {Zhuo Zhang and
Brian Zhang and
Wen Xu and
Zhiqiang Lin},
title = {Demystifying Exploitable Bugs in Smart Contracts},
booktitle = {{ICSE}},
pages = {615--627},
publisher = {{IEEE}},
year = {2023}
}
Please refer to our classification documentation.
We would like to extend our sincere thanks to code4rena for making this valuable information publicly available.
11 followers Β· starred Aug 2025
704 followers Β· starred Apr 2023
134 followers Β· starred Mar 2023
250 followers Β· starred Mar 2023
Demystifying Exploitable Bugs in Smart Contracts
Solidity
1,824
124 commits
updated Jun 19, 2025

This project aims to provide a valuable resource for Web3 developers and security analysts by facilitating their understanding of exploitable bugs in smart contracts. We conduct a thorough analysis of exploitable bugs extracted from code4rena and classify each bug according to its nature.
Our initial research suggests that a notable proportion of exploitable bugs in smart contracts are functional bugs, which cannot be detected using simple and general oracles like reentrancy. We aim to raise awareness about the significance of such bugs and encourage practitioners to develop more sophisticated and nuanced automatic semantical oracles to detect them.
π° πππππππππππ ππππππ ππ ππ‘πππππππππ ππππ ππ πππππ πππππππππ ππππ πππππ πππ ππππππππ’ ππ ππππππππππ ππππ, π ππππ ππππππ ππ ππππππππ πππππ ππππππ πππ πππππππ πππππππ.
Please be aware that this repository is currently undergoing active development, and the data may change over time due to ongoing code4rena contests.
The dataset is organized into four folders:
We classify the surveyed bugs into three main categories based on their nature:
As classifying functional bugs can be ambiguous, we welcome suggestions to improve our classification standards. You can find more detailed label information in our documentation, and we encourage you to refer to our current classification guidelines for more information.
Our goal is to create a comprehensive list of vulnerability detection techniques that will be a valuable resource for Web3 developers and security analysts. We will focus on two main categories:
We warmly welcome any additional suggestions or contributions from the community to help expand and improve the list.
We believe that future web3 security efforts will prioritize identifying functional bugs and developing corresponding oracles. To this end, we intend to compile a list of techniques that provide guidance in the creation of automatic semantic oracles. These techniques will be sourced from various materials, such as peer-reviewed research papers, pre-prints, industry tools, and online resources.
This section will include open-source techniques that are publicly available and currently in active development. These techniques can be used either directly by Web3 developers and security analysts or as building blocks for other tools. We give priority to source-code level techniques, which are better suited for Web3 development and auditing contexts.
| Technique | Developer(s) | Description | Security-related Keywords |
|---|---|---|---|
| Slither | Trail of Bits | Static Analysis Framework | Vulnerability Detectors, SlithIR |
| Aderyn | Cyfrin | Static Analysis Framework | Static Analyzer, Custom Detectors, Markdown Reports |
| Foundry | Paradigm | Development Toolchain | Fuzzing, Stateful Fuzzing (Invariant Testing), Differential Testing |
| Echidna | Trail of Bits | Fuzzer | Fuzzing , Stateful Fuzzing (Invariant Testing), CI/CD |
| Optik | Trail of Bits | Hybrid Fuzzer (Symbolic Execution + Fuzzing) | Fuzzing, Stateful Fuzzing, Symbolic Execution |
| Woke | Ackee Blockchain | Development Toolchain | Cross-chain Testing, Invariant Testing, Vulnerability Detectors, IR |
| 4naly3er | Picodes | Static Scanner | Code4rena Pre-content Testing |
| Manticore | Trail of Bits | Symbolic Execution Tool | Symbolic Execution, Property Testing |
| Halmos | a16z | Symbolic Bounded Model Checker | Symbolic Execution, Bound Checker |
| Solidity SMTChecker | Ethereum Foundation | Formal Verification by Symbolic Execution | Solidity, Formal Verification, Symbolic Execution |
| Mythril | Consensys | Symbolic Execution Tool | Symbolic Execution, On-Chain Analysis, Vulnerability Detectors, Taint Analysis |
| Pyrometer [WIP] | Nascent | Symbolic Execution Tool | Symbolic Execution, Abstract Interpretation |
| greed | UCSB Seclab | Static/Symbolic Analysis Framework | Symbolic Execution, Bound Checker, Static Analyses, Property Testing |
| ethpwn | ethpwn | Dynamic analysis/Debugging | EVM simulations, EVM debugging |
| Technique | Language | Description | Security-related Keywords |
|---|---|---|---|
| Move Prover | Move | Formal Specification and Verification | Formal Verification |
| Resource | Keywords |
|---|---|
| Academic Smart Contract Papers | Academic Paper List |
| DeFi Hacks Reproduce - Foundry | Attack Replication |
| Smart Contract Security Verification Standard | Security Checklist |
| Awesome MythX Smart Contract Security Tools | Security Analysis Service |
| Common Security Properties of Smart Contracts | Security Compliance Suite |
| Immunefi PoC Templates | PoC Templates |
| Awesome MEV Resources | MEV Resources |
| Front-Running Attack Benchmark Construction and Vulnerability Detection Technique Evaluation | Front-Running Dataset |
| Ultimate DeFi & Blockchain Research Base | Blockchain Security All-in-One |
| Common Fork Bugs | Exploit Dataset |
We welcome all types of contributions to our project, including but not limited to:
results/contests.csvFurther details can be found in our contribution guidelines.
If you are using our dataset for an academic publication, we would really appreciate a citation to the following work:
@inproceedings{DBLP:conf/icse/ZhangZXL23,
author = {Zhuo Zhang and
Brian Zhang and
Wen Xu and
Zhiqiang Lin},
title = {Demystifying Exploitable Bugs in Smart Contracts},
booktitle = {{ICSE}},
pages = {615--627},
publisher = {{IEEE}},
year = {2023}
}
Please refer to our classification documentation.
We would like to extend our sincere thanks to code4rena for making this valuable information publicly available.
11 followers Β· starred Aug 2025
704 followers Β· starred Apr 2023
134 followers Β· starred Mar 2023
250 followers Β· starred Mar 2023