LightCross: A Lightweight Smart Contract Vulnerability Detection Tool
Abstract
1. Introduction
1.1. Research Contributions
- The design and development of LightCross, a lightweight vulnerability detection tool for smart contracts that improves the security of smart contracts (Section 3).
- Composition of Mythril and Slither to provide a unified vulnerability detection tool for smart contracts without depending on a Docker container infrastructure (Section 3).
- An experimental evaluation of LightCross in relation to SmartBugs tool version 2.0.14 (Section 4) demonstrating the effectiveness of a lightweight approach.
1.2. Research Methodology
- Literature Review: In Section 2, we review related work on smart contract vulnerability analysis and classification. We discuss well-known vulnerabilities in smart contracts, their classification, and detection tools.
- System Design: In Section 3, we present the LightCross design as a modular system to import smart contracts, processing them in parallel with the back-end tools, and aggregating the results into a CSV file.
- Implementation: Also described in Section 3, we discuss the Python implementation of the tool, the functionalities of each program and the integration of the backend tools.
- Evaluation: We provide a performance evaluation of the proposed LightCross tool in Section 4 where we use a SmartBugs curated dataset [16] to assess the vulnerability detection rate of LightCross. We measure against the metrics of True Positive (TP), False Positive (FP), False Negative (FN), Recall, Precision, and F1 score. We then performed a comparative analysis to the independent execution of Slither, Mythril, and SmartBugs.
2. Background
2.1. Security Vulnerabilities in Smart Contracts
- Reentrancy: The reentrancy vulnerability occurs when a contract allows external calls to untrusted contracts before updating its internal state. This allows an attacker to repeatedly call a vulnerable function and drain funds by taking advantage of the contract’s unprotected state. For example, a malicious user could exploit contract (A) to recursively call the withdraw function of contract (B) before the contract’s state is updated. This can potentially lead to unexpected behaviour and exploitation of the smart contract’s logic [25,26].
- Access Control: Inadequate access control mechanisms can allow unauthorised users or contracts to access sensitive smart contract’s functions or data [27]. Proper management of permissions is crucial for preventing unauthorised access. For instance, the smart contract should always verify the user’s permissions before executing the withdrawal function. In the context of Ethereum, the Solidity programming language offers access modifiers. Additionally, developers can add require statements embedded inside functions, where the transaction is rolled back if the condition of the require statement is not fulfilled.
- Integer Overflow/Underflow: Integer overflow/underflow vulnerabilities occur when a computed value exceeds the maximum representable size or falls below the minimum representable size for a particular data type. In Solidity, an unsigned integer is defined as uint256 [28], which is limited to 256 bits in size. This translates to integers between 0 and . These vulnerabilities can lead to unintended consequences, including loss of funds, unauthorised access, or DoS attacks [29]. However, since Solidity 0.8.0, these operations are automatically checked, and overflows/underflows cause the transaction to revert.
- Timestamp Dependency: This vulnerability affects smart contracts, particularly on the Ethereum blockchain. It is closely related to the “Unpredictable State” category and pertains to the dependence of a contract’s behaviour on the current block’s timestamp. The block timestamp is a dynamic value that can be manipulated, potentially leading to security issues [30]. Smart contracts may rely on the block timestamp for various purposes, such as time-based triggers or access control. However, malicious miners in proof-of-work or validators in proof-of-stake systems could manipulate the timestamp to gain an advantage or exploit certain time-dependent functions, leading to unpredictable behaviour or vulnerabilities [8].
- Authorisation through tx.origin: In Solidity, there exists a global variable known as tx.origin, which provides the address of the sender of a transaction. Utilising this variable for authorisation purposes can potentially introduce vulnerabilities to a contract [29]. This vulnerability arises when an authorised account interacts with a malicious contract, potentially passing the authorisation check because tx.origin reveals the original sender of the transaction [31]. To mitigate this risk, it is recommended to use “msg.sender” for authorisation purposes.
- Frozen Ether/Token: The Frozen Ether/Token vulnerability occurs when funds become inaccessible or “frozen” due to a flaw in the contract’s code. This can happen if certain conditions are not properly handled, allowing an attacker to lock up funds indefinitely. This vulnerability is frequently caused by dependency on external contract libraries. Core functionalities may be compromised if an external library is updated or terminated. This flaw resulted in the aforementioned Parity multi-signature wallet bug [19].
- Transaction Ordering Dependency (TOD): This vulnerability is a critical security concern in smart contracts, highlighting the potential risks associated with decision-making based on evolving information. In a TOD vulnerability scenario, the outcome of a smart contract function or transaction is influenced by external factors that change between the contract’s initiation and execution phases [23]. This time gap creates a window of opportunity for malicious actors to exploit discrepancies, leading to unexpected and potentially harmful results.
2.2. Smart Contract Vulnerabilities Classification
- High-level categories (e.g., Unsafe External Calls)
- Vulnerability groups (e.g., Reentrancy)
- Individual vulnerabilities (e.g., Unsafe Credit Transfer)
2.3. Vulnerability Detection Tools & Related Works
- Manticore uses symbolic execution techniques. Mossberg et al. [40] described Manticore’s capabilities in analysing smart contracts through symbolic execution. This tool enables the identification of vulnerabilities that may manifest under specific input conditions. While it can be used alongside static analysis tools, Manticore’s symbolic execution approach provides a distinct method of analysis that can uncover complex, state-dependent vulnerabilities.
- Mythril uses symbolic execution to examine smart contracts. Bonomi et al. [41] assessed Mythril’s vulnerability detection capabilities by applying it to actual smart contracts sourced from Code4arena competitions and comparing the results with official security audits conducted during those events. Their study identifies potential inefficiencies in the tool, suggesting directions for the development of more scalable and effective methods for testing smart contracts.
- Oyente uses a static analysis approach for anomaly detection. Gupta et al. [39] highlighted the importance of Oyente in identifying vulnerabilities by analysing the bytecode of smart contracts, in particular in terms of the detection of potential security flaws during the contract development phase.
- Securify takes a formal verification approach to smart contract security. Tsankov et al. [43] explored the application of Securify to ensure security assurance through mathematical proofs. This tool adds an extra layer of assurance by formally verifying that smart contracts adhere to predefined security specifications [31].
- Slither is a free open source tool to inspect the Solidity code and identify potential problems. Released in 2018, it is developed in Python, using a unique intermediate representation known as SlithIR. Slither finds vulnerabilities using a combination of data flow analysis and tracking approaches. It detects a wide range of vulnerabilities, including reentrancy, frozen ether, and integer overflows, with high accuracy [44]. Its comprehensive coverage makes it one of the most robust tools for smart contract security.
3. System Design and Implementation
3.1. Importer
3.2. Subprocess Orchestrator
3.3. Analysis Tools and Aggregator
3.4. Vulnerability Classification and Reporting
- The OpenScvVulnerabilityMapper component initialises by loading vulnerability CSV files and the OpenSCV database file, validating their existence and accessibility.
- Processes these inputs by merging vulnerability files and preparing the OpenSCV data for efficient lookup.
- Establishes mapping rules based on SWC-IDs and relevant keywords extracted from vulnerability descriptions and synonyms.
- For each vulnerability entry, a two-tier analysis approach is applied: first, attempting direct matching via SWC-ID fields, if present. If it is unsuccessful, we employ keyword matching with a scoring system to determine the corresponding OpenSCV classification entry if there is more than one candidate.
- Once mapped, it retrieves the corresponding detailed entries from the OpenSCV classification.
- Exports results into CSV, JSON files and generates visualisation plots for analysis, creating a complete audit trail.
4. Evaluation
4.1. Metrics for Vulnerability Detection
- True Positive (TP): the tool correctly identifies a vulnerability present in the smart contract, matching the vulnerability specified in the baseline dataset.
- False Positive (FP): the tool incorrectly reports a vulnerability in a smart contract that is not the same as the one specified in the baseline dataset.
- False Negative (FN): the tool does not identify a vulnerability in the smart contract while there is one specified in the baseline dataset.
- True Negative (TN): the tool correctly identifies that a smart contract is not vulnerable. The baseline dataset does not include a smart contract that is free of vulnerabilities.
4.2. SmartBugs Curated Dataset
4.3. Experimental Results
4.4. Performance Evaluation
4.5. Limitations
- Limited Detection Coverage: The tool relies solely on Slither and Mythril, which together detect only 53% and 48% of vulnerabilities in the SmartBugs dataset, respectively. Critical gaps exist for categories like bad randomness (10% coverage) and front-running (14%).
- High False Positives/Negatives: Mythril’s low precision (31%) introduces noise, while Slither misses 52% of vulnerabilities, risking undetected exploits.
- Performance Bottlenecks: Symbolic execution (e.g., Mythril’s 600 s analysis for reentrancy) limits scalability. Subprocess orchestration lacks advanced parallelism compared to containerised approaches like SmartBugs.
- Isolated Contract Analysis: LightCross scans contracts in isolation, ignoring vulnerabilities arising from inter-contract interactions (e.g., cross-contract reentrancy).
5. Conclusions and Future Work
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
Abbreviations
API | Application Programming Interface |
CSV | Comma Separated Values |
CWE | Common Weakness Enumeration |
DAO | Decentralized Autonomous Organisation |
DASP | Decentralized Application Security Project |
DeFi | Decentralised Finance |
DoS | Denial of Service |
ETH | Ether (Ethereum’s cryptocurrency) |
EVM | Ethereum Virtual Machine |
FN | False Negative |
FNR | False Negative Rate |
FP | False Positive |
FPR | False Positive Rate |
GUI | Graphical User Interface |
IDE | Integrated Development Environment |
LoC | Lines of Code |
ML | Machine Learning |
ODC | Orthogonal Defect Classification |
OpenSCV | Open taxonomy for Smart Contract Vulnerabilities |
PyCOMPSs | Python Programming COMPSs Framework |
SB | SmartBugs |
SC | Smart Contract |
SCSVS | OWASP Smart Contract Security Verification Standard |
SCWE | OWASP Smart Contract Weakness Enumeration |
SLR | Systematic Literature Review |
SMT | Satisfiability Modulo Theories |
SWC | Smart Contract Weakness Classification |
TN | True Negative |
TOD | Transaction Ordering Dependency |
TP | True Positive |
References
- Szabo, N. Formalizing and Securing Relationships on Public Networks. First Monday 1997, 2. [Google Scholar] [CrossRef]
- Kowalski, T.; Chowdhury, M.M.; Latif, S.; Kambhampaty, K. Bitcoin: Cryptographic Algorithms, Security Vulnerabilities and Mitigations. In Proceedings of the 2022 IEEE International Conference on Electro Information Technology, EIT 2022, Mankato, MN, USA, 19–21 May 2022; pp. 544–549. [Google Scholar] [CrossRef]
- Farokhnia, S.; Goharshady, A.K. Options and Futures Imperil Bitcoin’s Security. In Proceedings of the IEEE International Conference on Blockchain, Blockchain 2024, Copenhagen, Denmark, 19–22 August 2024; pp. 157–164. [Google Scholar] [CrossRef]
- Modesti, P.; Shahandashti, S.F.; McCorry, P.; Hao, F. Formal modelling and security analysis of Bitcoin’s payment protocol. Comput. Secur. 2021, 107, 102279. [Google Scholar] [CrossRef]
- Samreen, N.F.; Alalfi, M.H. SmartScan: An approach to detect Denial of Service Vulnerability in Ethereum Smart Contracts. In Proceedings of the 2021 IEEE/ACM 4th International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), Madrid, Spain, 31 May 2021; pp. 17–26. [Google Scholar] [CrossRef]
- Yu, X.; Zhao, H.; Hou, B.; Ying, Z.; Wu, B. Deescvhunter: A deep learning-based framework for smart contract vulnerability detection. In Proceedings of the 2021 International Joint Conference on Neural Networks (IJCNN), Shenzhen, China, 18–22 July 2021; pp. 1–8. [Google Scholar] [CrossRef]
- Atzei, N.; Bartoletti, M.; Cimoli, T. A Survey of Attacks on Ethereum Smart Contracts (SoK). In Lecture Notes in Computer Science, Principles of Security and Trust, POST 2017; Maffei, M., Ryan, M., Eds.; Springer: Berlin/Heidelberg, Germany, 2017; Volume 10204, pp. 164–186. [Google Scholar] [CrossRef]
- Mueller, B. Smashing Ethereum smart contracts for fun and real profit. HITB SECCONF Amst. 2018, 9, 4–17. [Google Scholar]
- Khan, Z.A.; Namin, A.S. A Survey of Vulnerability Detection Techniques by Smart Contract Tools. IEEE Access 2024, 12, 70870–70910. [Google Scholar] [CrossRef]
- Groce, A.; Feist, J.; Grieco, G.; Colburn, M. What are the Actual Flaws in Important Smart Contracts (And How Can We Find Them)? In Lecture Notes in Computer Science; Springer International Publishing: Cham, Switzerland, 2020; pp. 634–653. [Google Scholar] [CrossRef]
- Ji, S.; Kim, D.; Im, H. Evaluating Countermeasures for Verifying the Integrity of Ethereum Smart Contract Applications. IEEE Access 2021, 9, 90029–90042. [Google Scholar] [CrossRef]
- Angelo, M.D.; Durieux, T.; Ferreira, J.F.; Salzer, G. SmartBugs 2.0: An Execution Framework for Weakness Detection in Ethereum Smart Contracts. In Proceedings of the 38th IEEE/ACM International Conference on Automated Software Engineering, ASE 2023, Luxembourg, 11–15 September 2023; pp. 2102–2105. [Google Scholar] [CrossRef]
- Vidal, F.R.; Ivaki, N.; Laranjeiro, N. OpenSCV: An open hierarchical taxonomy for smart contract vulnerabilities. Empir. Softw. Eng. 2024, 29, 101. [Google Scholar] [CrossRef]
- MITRE Corporation. Common Weakness Enumeration (CWE). 2025. Available online: https://cwe.mitre.org/ (accessed on 9 April 2025).
- SmartContractSecurity. Smart Contract Weakness Classification (SWC) and Test Cases. 2020. Available online: https://swcregistry.io/ (accessed on 21 August 2025).
- Salzer, G.; Ferreira, J.F.; Jin, M. SB Curated: A Curated Dataset of Vulnerable Solidity Smart Contracts. 2023. Available online: https://github.com/smartbugs/smartbugs-curated (accessed on 23 April 2025).
- Sklaroff, J.M. Smart contracts and the cost of inflexibility. Univ. Pa. Law Rev. 2017, 166, 263. [Google Scholar]
- Akca, S.; Rajan, A.; Peng, C. SolAnalyser: A framework for analysing and testing smart contracts. In Proceedings of the 2019 26th Asia-Pacific Software Engineering Conference (APSEC), Putrajaya, Malaysia, 2–5 December 2019; pp. 482–489. [Google Scholar] [CrossRef]
- Xu, J.; Dang, F.; Ding, X.; Zhou, M. A Survey on Vulnerability Detection Tools of Smart Contract Bytecode. In Proceedings of the 2020 IEEE 3rd International Conference on Information Systems and Computer Aided Education (ICISCAE), Dalian, China, 27–29 September 2020. [Google Scholar] [CrossRef]
- Chen, H.; Pendleton, M.; Njilla, L.; Xu, S. A Survey on Ethereum Systems Security: Vulnerabilities, Attacks, and Defenses. ACM Comput. Surv. 2021, 67. [Google Scholar] [CrossRef]
- Bartoletti, M.; Benetollo, L.; Bugliesi, M.; Crafa, S.; Sasso, G.D.; Pettinau, R.; Pinna, A.; Piras, M.; Rossi, S.; Salis, S.; et al. Smart contract languages: A comparative analysis. Future Gener. Comput. Syst. 2025, 164, 107563. [Google Scholar] [CrossRef]
- Cryptopedia. What Was The DAO? 2016. Available online: https://www.gemini.com/cryptopedia/the-dao-hack-makerdao (accessed on 23 August 2025).
- Rameder, H.; Di Angelo, M.; Salzer, G. Review of automated vulnerability analysis of smart contracts on Ethereum. Front. Blockchain 2022, 5, 814977. [Google Scholar] [CrossRef]
- Grossman, S.; Abraham, I.; Golan-Gueta, G.; Michalevsky, Y.; Rinetzky, N.; Sagiv, M.; Zohar, Y. Online detection of effectively callback free objects with applications to smart contracts. Proc. ACM Program. Lang. 2017, 2, 1–28. [Google Scholar] [CrossRef]
- Delmolino, K.; Arnett, M.; Kosba, A.; Miller, A.; Shi, E. Step by Step Towards Creating a Safe Smart Contract: Lessons and Insights from a Cryptocurrency Lab. In Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2016; pp. 79–94. [Google Scholar] [CrossRef]
- Dika, A.; Nowostawski, M. Security Vulnerabilities in Ethereum Smart Contracts. In Proceedings of the 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData), Halifax, NS, Canada, 30 July–3 August 2018. [Google Scholar] [CrossRef]
- Ghaleb, A.; Rubin, J.; Pattabiraman, K. AChecker: Statically Detecting Smart Contract Access Control Vulnerabilities. In Proceedings of the 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE), Melbourne, Australia, 14–20 May 2023; pp. 945–956. [Google Scholar] [CrossRef]
- Zhu, H.; Yang, L.; Wang, L.; Sheng, V.S. A Survey on Security Analysis Methods of Smart Contracts. IEEE Trans. Serv. Comput. 2024, 17, 4522–4539. [Google Scholar] [CrossRef]
- Tikhomirov, S.; Voskresenskaya, E.; Ivanitskiy, I.; Takhaviev, R.; Marchenko, E.; Alexandrov, Y. SmartCheck: Static analysis of Ethereum smart contracts. In Proceedings of the 1st International Workshop on Emerging Trends in Software Engineering for Blockchain, Gothenburg, Sweden, 27 May 2018. [Google Scholar] [CrossRef]
- Khan, Z.A.; Siami Namin, A. Ethereum Smart Contracts: Vulnerabilities and their Classifications. In Proceedings of the 2020 IEEE International Conference on Big Data (Big Data), Atlanta, GA, USA, 10–13 December 2020. [Google Scholar] [CrossRef]
- Staderini, M.; Palli, C.; Bondavalli, A. Classification of Ethereum Vulnerabilities and their Propagations. In Proceedings of the 2020 Second International Conference on Blockchain Computing and Applications (BCCA), Antalya, Turkey, 2–5 November 2020. [Google Scholar] [CrossRef]
- Dingman, W.; Cohen, A.; Ferrara, N.; Lynch, A.; Jasinski, P.; Black, P.E.; Deng, L. Defects and Vulnerabilities in Smart Contracts, a Classification using the NIST Bugs Framework. Int. J. Networked Distrib. Comput. 2019, 7, 121–132. [Google Scholar] [CrossRef]
- Ruggiero, C.; Mazzini, P.; Coppa, E.; Lenti, S.; Bonomi, S. SoK: A Unified Data Model for Smart Contract Vulnerability Taxonomies. In Proceedings of the 19th International Conference on Availability, Reliability and Security, Vienna, Austria, 30 July–2 August 2024; pp. 1–13. [Google Scholar] [CrossRef]
- NCC Group. Decentralized Application Security Project (DASP). 2018. Available online: https://dasp.co/ (accessed on 10 September 2024).
- IBM Corporation. Orthogonal Defect Classification v5.2 for Software Design and Code, Version 5.2; IBM: Armonk, NY, USA, 2013.
- OWASP Smart Contract Security Project. Smart Contract Security Verification Standard (SCSVS). 2025. Available online: https://scs.owasp.org/SCSVS/ (accessed on 21 August 2025).
- OWASP Smart Contract Security Project. Smart Contract Security Weakness Enumeration (SCWE). 2025. Available online: https://scs.owasp.org/SCWE/ (accessed on 21 August 2025).
- Fontein, R. Comparison of static analysis tooling for smart contracts on the EVM. In Proceedings of the 28th Twente Student Conference on IT, Enschede, The Netherlands, 2 February 2018. [Google Scholar]
- Gupta, B.C.; Kumar, N.; Handa, A.; Shukla, S.K. An Insecurity Study of Ethereum Smart Contracts. In Lecture Notes in Computer Science, Proceedings of the Security, Privacy, and Applied Cryptography Engineering—10th International Conference, SPACE 2020, Kolkata, India, 17–21 December 2020; Batina, L., Picek, S., Mondal, M., Eds.; Springer: Cham, Switzerland, 2020; Volume 12586, pp. 188–207. [Google Scholar] [CrossRef]
- Mossberg, M.; Manzano, F.; Hennenfent, E.; Groce, A.; Grieco, G.; Feist, J.; Brunson, T.; Dinaburg, A. Manticore: A User-Friendly Symbolic Execution Framework for Binaries and Smart Contracts. In Proceedings of the 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE), San Diego, CA, USA, 11–15 November 2019. [Google Scholar] [CrossRef]
- Bonomi, S.; Cappai, S.; Coppa, E. On the Efficacy of Smart Contract Analysis Tools. In Proceedings of the 2023 IEEE 34th International Symposium on Software Reliability Engineering Workshops (ISSREW), Florence, Italy, 9–12 October 2023; pp. 37–38. [Google Scholar] [CrossRef]
- Sayeed, S.; Marco-Gisbert, H.; Caira, T. Smart Contract: Attacks and Protections. IEEE Access 2020, 8, 24416–24427. [Google Scholar] [CrossRef]
- Tsankov, P.; Dan, A.; Drachsler-Cohen, D.; Gervais, A.; Bünzli, F.; Vechev, M. Securify: Practical Security Analysis of Smart Contracts. In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, CCS ’18, Toronto, ON, Canada, 15–19 October 2018. [Google Scholar] [CrossRef]
- Banisadr, E. How $800k Evaporated from the PoWH Coin Ponzi Scheme Overnight. 2018. Available online: https://medium.com/@ebanisadr/how-800k-evaporated-from-the-powh-coin-ponzi-scheme-overnight-1b025c33b530 (accessed on 10 January 2025).
- Ressi, D.; Spanò, A.; Benetollo, L.; Piazza, C.; Bugliesi, M.; Rossi, S. Vulnerability Detection in Ethereum Smart Contracts via Machine Learning: A Qualitative Analysis. arXiv 2024, arXiv:2407.18639. [Google Scholar] [CrossRef]
- Antunes, N.; Vieira, M. Assessing and Comparing Vulnerability Detection Tools for Web Services: Benchmarking Approach and Examples. IEEE Trans. Serv. Comput. 2015, 8, 269–283. [Google Scholar] [CrossRef]
- Durieux, T.; Ferreira, J.F.; Abreu, R.; Cruz, P. Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, Seoul, Republic of Korea, 27 June–19 July 2020; pp. 530–541. [Google Scholar] [CrossRef]
- Qian, P.; He, J.; Lu, L.; Wu, S.; Lu, Z.; Wu, L.; Zhou, Y.; He, Q. Demystifying Random Number in Ethereum Smart Contract: Taxonomy, Vulnerability Identification, and Attack Detection. IEEE Trans. Softw. Eng. 2023, 49, 3793–3810. [Google Scholar] [CrossRef]
- Rodola, G. psutil: Cross-Platform Lib for Process and System Monitoring in Python. 2009. Available online: https://github.com/giampaolo/psutil (accessed on 21 August 2025).
- Docker Inc. Docker Container Stats. 2025. Available online: https://docs.docker.com/reference/cli/docker/container/stats/ (accessed on 21 August 2025).
- Baresi, L.; Quattrocchi, G.; Rasi, N. A Qualitative and Quantitative Analysis of Container Engines. J. Syst. Softw. 2024, 210, 111965. [Google Scholar] [CrossRef]
- Tejedor, E.; Becerra, Y.; Alomar, G.; Queralt, A.; Badia, R.M.; Torres, J.; Cortes, T.; Labarta, J. PyCOMPSs: Parallel Computational Workflows in Python. Int. J. High Perform. Comput. Appl. 2017, 31, 66–82. [Google Scholar] [CrossRef]
- Ferreira, J.F.; Durieux, T.; Maranhao, R. SmartBugs Wild Dataset. 2020. Available online: https://github.com/smartbugs/smartbugs-wild (accessed on 23 April 2025).
- Sendner, C.; Petzi, L.; Stang, J.; Dmitrienko, A. Large-Scale Study of Vulnerability Scanners for Ethereum Smart Contracts. In Proceedings of the 2024 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 19–23 May 2024; pp. 2273–2290. [Google Scholar] [CrossRef]
- Davis, J.A.; Clark, M.A.; Cofer, D.D.; Fifarek, A.; Hinchman, J.; Hoffman, J.A.; Hulbert, B.W.; Miller, S.P.; Wagner, L.G. Study on the Barriers to the Industrial Adoption of Formal Methods. In Lecture Notes in Computer Science, Proceedings of the Formal Methods for Industrial Critical Systems—18th International Workshop, FMICS 2013, Madrid, Spain, 23–24 September 2013; Pecheur, C., Dierkes, M., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; Volume 8187, pp. 63–77. [Google Scholar] [CrossRef]
Taxonomy | Vuln | L1 Cats | Levels | Updated | Notes |
---|---|---|---|---|---|
SWC [15] | 37 | – | – | 2018 | Industry, CWE-aligned |
DASP [34] | 9 | – | – | 2018 | Industry |
Rameder et al. [23] | 54 | 10 | 2 | 2022 | Academic |
OpenSCV [13] | 94 | 8 | 3 | 2024 | Academic, CWE-aligned |
Taxonomy | URL (Accessed on 21 August 2025) |
---|---|
SWC [15] | https://swcregistry.io/ |
DASP [34] | https://dasp.co/ |
Rameder et al. [23] | https://www.frontiersin.org/articles/10.3389/fbloc.2022.814977/full#supplementary-material |
OpenSCV [13] | https://openscv.dei.uc.pt/ |
SWC ID | SWC Description | OpenSCV Category (L2) | OpenSCV Category (L3) |
---|---|---|---|
SWC-101 | Integer Overflow and Underflow | 7.1 Overflow and Underflow 7.2 Division Bugs 7.3 Conversion Bugs | 7.1.1 Integer Underflow 7.1.2 Integer Overflow 7.2.1 Divide by Zero 7.2.2 Integer Division 7.3.1 Truncation Bugs 7.3.2 Signedness Bugs |
SWC-114 | Transaction Order Dependence | 6.1 Incorrect Sequencing of Behaviour | 6.1.2 Incorrect Function Call Order 6.1.4 Transfer Pre-Condition Dependent on Transaction Order 6.1.5 Transfer Amount Depending on Transaction Order 6.1.6 Transfer Recipient Depending on Transaction Order |
SWC-116 | Block values as a proxy for time | 6.1 Incorrect Sequencing of Behaviour | 6.1.1 Incorrect Use of Event Blockchain Variables for Time |
SWC-132 | Unexpected Ether balance | 6.1 Incorrect Sequencing of Behaviour | 6.1.3 Improper Locking |
– | – | 6.1 Incorrect Sequencing of Behaviour | 6.1.7 Exposed State Variables 6.1.8 Wrong Transaction Definition |
Vulnerabilities Tools | Reentrancy | Access Control | Timestamp dep. | tx.origin | Frozen Ether | Over/Underflow | TODs |
---|---|---|---|---|---|---|---|
Manticore | ✓ | × | × | ✓ | × | ✓✓ | × |
Mythril | ✓✓ | × | ✓ | ✓ | × | ✓✓ | ✓ |
MythX | ✓✓ | ✓ | ✓ | ✓✓ | × | ✓✓ | ✓ |
Oyente | ✓ | × | ✓ | × | × | ✓ | ✓ |
Securify | ✓✓ | ✓✓ | ✓ | × | ✓ | ✓✓ | ✓ |
Slither | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ |
Tool | Contract | Vulnerability | Severity | SWC-ID | OpenSCV Index | Defect Type |
---|---|---|---|---|---|---|
Mythril | SmartBillions | Dependence on predictable environment variable | High | SWC-120 | 5.1 Bad Randomness | Algorithm/Method |
Slither | LuckyDoubler | weak-prng | High | SWC-120 | 5.1 Bad Randomness | Algorithm/Method |
Mythril | PredictTheBlockHashChallenge | Unprotected Ether Withdrawal | High | SWC-105 | 4.2 Unprotected Transfer Value | Checking |
Slither | RandomNumberGenerator | weak-prng | High | SWC-120 | 5.1 Bad Randomness | Algorithm/Method |
Slither | GuessTheRandomNumberChallenge | arbitrary-send-eth | High | SWC-105 | 4.2 Unprotected Transfer Value | Checking |
slither | BlackJack | controlled-array-length | High | SWC-128 | 2.1.2 Improper Exception Handling in a Loop | Algorithm/Method |
Category | Vulnerabilities | Contracts | LoC |
---|---|---|---|
Access Control | 21 | 18 | 933 |
Arithmetic | 23 | 15 | 304 |
Bad Randomness | 30 | 8 | 1079 |
Denial of Service | 7 | 6 | 177 |
Front Running | 7 | 4 | 137 |
Unknown Unknowns | 3 | 3 | 116 |
Reentrancy | 32 | 31 | 2164 |
Short Addresses | 1 | 1 | 18 |
Time Manipulation | 7 | 5 | 100 |
Unchecked Return Values | 75 | 52 | 4036 |
Total | 206 | 143 | 9064 |
TP | FP | FN | Prec. | Rec. | F1 | Samples | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Category | M | S | M | S | M | S | M | S | M | S | M | S | M | S |
AC | 13 | 7 | 18 | 36 | 4 | 14 | 0.42 | 0.16 | 0.33 | 0.21 | 0.54 | 0.22 | 35 | 57 |
AI | 11 | 0 | 7 | 58 | 3 | 23 | 0.61 | 0.00 | 0.79 | 0.00 | 0.69 | 0.00 | 21 | 81 |
BR | 3 | 3 | 6 | 10 | 3 | 27 | 0.33 | 0.23 | 0.50 | 0.10 | 0.40 | 0.14 | 12 | 40 |
DoS | 1 | 3 | 5 | 47 | 3 | 4 | 0.17 | 0.06 | 0.25 | 0.43 | 0.20 | 0.10 | 9 | 54 |
FR | 1 | 0 | 4 | 0 | 2 | 7 | 0.20 | 0.00 | 0.33 | 0.00 | 0.25 | 0.00 | 7 | 7 |
RE | 30 | 29 | 77 | 28 | 0 | 3 | 0.28 | 0.51 | 1.00 | 0.91 | 0.44 | 0.65 | 107 | 60 |
SA | 0 | 0 | 0 | 0 | 0 | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0 | 1 |
TM | 3 | 5 | 7 | 18 | 1 | 2 | 0.30 | 0.22 | 0.75 | 0.72 | 0.43 | 0.33 | 11 | 25 |
URV | 46 | 50 | 113 | 36 | 4 | 25 | 0.29 | 0.58 | 0.92 | 0.67 | 0.44 | 0.62 | 163 | 111 |
UU | 1 | 3 | 6 | 17 | 1 | 0 | 0.14 | 0.15 | 0.50 | 1.00 | 0.22 | 0.26 | 8 | 20 |
Overall | 109 | 100 | 243 | 250 | 21 | 106 | 0.31 | 0.73 | 0.84 | 0.45 | 0.45 | 0.58 | 373 | 456 |
Total | Detected | Missed | Detection Coverage | ||||
---|---|---|---|---|---|---|---|
Category | Vulnerabilities | M | S | M | S | M | S |
AC | 21 | 13 | 7 | 8 | 14 | 62% | 33% |
AI | 23 | 11 | 0 | 12 | 23 | 48% | 0% |
BR | 30 | 3 | 3 | 27 | 27 | 10% | 10% |
DoS | 7 | 1 | 3 | 6 | 4 | 14% | 43% |
FR | 7 | 1 | 0 | 6 | 7 | 14% | 0% |
UU | 3 | 1 | 3 | 2 | 0 | 33% | 100% |
RE | 32 | 30 | 29 | 2 | 3 | 94% | 90% |
SA | 1 | 0 | 0 | 1 | 1 | 0% | 0% |
TM | 7 | 3 | 5 | 4 | 2 | 43% | 71% |
URV | 75 | 46 | 50 | 29 | 25 | 61% | 66% |
Overall | 206 | 109 | 100 | 97 | 106 | 53% | 48% |
Tool | AC | AI | BR | DoS | FR | RE | SA | TM | URV | UU | TP | FP | FN | Prec. | Rec. | F1 | Sa. |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Confuzzius | 9 | 11 | 0 | 0 | 2 | 29 | 0 | 3 | 38 | 0 | 92 | 176 | 114 | 0.34 | 0.45 | 0.39 | 382 |
Conkas | 0 | 9 | 0 | 0 | 1 | 30 | 0 | 5 | 49 | 0 | 94 | 234 | 112 | 0.29 | 0.46 | 0.35 | 440 |
Honeybadger | 0 | 0 | 0 | 0 | 0 | 18 | 0 | 0 | 0 | 0 | 18 | 142 | 188 | 0.11 | 0.09 | 0.10 | 348 |
Maian | 7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7 | 143 | 199 | 0.05 | 0.03 | 0.04 | 349 |
Manticore | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 142 | 206 | 0.00 | 0.00 | 0.00 | 348 |
Osiris | 0 | 13 | 0 | 0 | 0 | 27 | 0 | 2 | 13 | 0 | 55 | 195 | 151 | 0.22 | 0.27 | 0.24 | 401 |
Oyente | 0 | 14 | 0 | 0 | 0 | 27 | 0 | 0 | 38 | 0 | 79 | 181 | 127 | 0.30 | 0.38 | 0.34 | 387 |
Securify | 1 | 0 | 0 | 0 | 2 | 28 | 0 | 0 | 50 | 0 | 81 | 179 | 125 | 0.31 | 0.39 | 0.35 | 385 |
Semgrep | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 145 | 205 | 0.01 | 0.00 | 0.01 | 351 |
Sfuzz | 0 | 8 | 0 | 0 | 0 | 21 | 0 | 1 | 32 | 0 | 62 | 169 | 144 | 0.27 | 0.30 | 0.28 | 375 |
Smartcheck | 2 | 1 | 0 | 1 | 0 | 29 | 0 | 1 | 51 | 0 | 85 | 206 | 121 | 0.29 | 0.41 | 0.34 | 412 |
Solhint | 16 | 0 | 0 | 1 | 0 | 0 | 0 | 5 | 51 | 1 | 74 | 353 | 132 | 0.17 | 0.36 | 0.23 | 559 |
Slither | 7 | 0 | 3 | 3 | 0 | 29 | 0 | 5 | 50 | 3 | 100 | 392 | 106 | 0.20 | 0.48 | 0.28 | 598 |
Mythril | 8 | 11 | 3 | 1 | 1 | 18 | 0 | 2 | 36 | 1 | 81 | 204 | 124 | 0.28 | 0.39 | 0.33 | 409 |
Total | LightCross | Combined | Best SmartBugs | Difference | ||||
---|---|---|---|---|---|---|---|---|
Category | Vulns. | Mythril | Slither | Min | Max | Tool (Detected) | Min | Max |
AC | 21 | 13 | 7 | 13 | 20 | Solhint (16) | −3 | +4 |
AI | 23 | 11 | 0 | 11 | 11 | Oyente (14) | −3 | −3 |
BR | 30 | 3 | 3 | 3 | 6 | Mythril/Slither (3) | 0 | +3 |
DoS | 7 | 1 | 3 | 3 | 4 | Slither (3) | 0 | +1 |
FR | 7 | 1 | 0 | 1 | 1 | Confuzzius/Securify (2) | −1 | −1 |
RE | 32 | 30 | 29 | 30 | 32 | Conkas (30) | 0 | +2 |
SA | 1 | 0 | 0 | 0 | 0 | None (0) | 0 | 0 |
TM | 7 | 2 | 3 | 3 | 5 | Conkas/Slither/Solhint (5) | −2 | 0 |
URV | 75 | 46 | 50 | 50 | 75 | Smartcheck/Solhint (51) | −1 | +24 |
UU | 3 | 1 | 3 | 3 | 3 | Slither (3) | 0 | 0 |
Total | 206 | 109 | 100 | 117 | 154 | (127) | −10 | +30 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Sfyrakis, I.; Modesti, P.; Golightly, L.; Ikegima, M. LightCross: A Lightweight Smart Contract Vulnerability Detection Tool. Computers 2025, 14, 369. https://doi.org/10.3390/computers14090369
Sfyrakis I, Modesti P, Golightly L, Ikegima M. LightCross: A Lightweight Smart Contract Vulnerability Detection Tool. Computers. 2025; 14(9):369. https://doi.org/10.3390/computers14090369
Chicago/Turabian StyleSfyrakis, Ioannis, Paolo Modesti, Lewis Golightly, and Minaro Ikegima. 2025. "LightCross: A Lightweight Smart Contract Vulnerability Detection Tool" Computers 14, no. 9: 369. https://doi.org/10.3390/computers14090369
APA StyleSfyrakis, I., Modesti, P., Golightly, L., & Ikegima, M. (2025). LightCross: A Lightweight Smart Contract Vulnerability Detection Tool. Computers, 14(9), 369. https://doi.org/10.3390/computers14090369