Investigating Vulnerability Detection Tools and Solidity Compiler Versions on the Vulnerability of Unchecked Call Return Values
Blockchain-Technologien haben in den letzten Jahren erheblich an Aufmerksamkeit gewonnen. Ethereum hat sich als führende Plattform für Smart Contracts etabliert. Während Smart Contracts eine Vielzahl von Anwendungen in Bereichen wie dezentralisierte Finanzen, Non-Fungible Tokens und dezentralisierte autonome Organisationen ermöglichen, bringen sie zugleich neue Herausforderungen mit sich, auch im Bereich Security. Schwachstellen in bereits deployten Smart Contracts können schwerwiegende Folgen haben, unter anderem finanzielle Verluste. Da bereits auf der Blockchain deployteSmart Contracts schwer zu verändern sind, sind zuverlässige Tools zur Erkennung von Schwachstellen besonders wichtig. Diese Arbeit untersucht die Schwachstelle der “unchecked return values of low-level calls” und deren Varianten. Low-Level Operationen wie send, call, delegatecall, staticcall und callcode führen bei einem Fehler kein Revert aus, sondern geben einen booleschen Wert zurück, der überprüft werden muss. Zur Analyse dieser Schwachstelle entwickeln wir ein Framework zur Generierung von Minimal Contracts mit der Schwachstelle sowohl in Konstruktoren als auch in Funktionen und kompiliert mit verschiedenen Solidity Compiler Versionen von 0.4 bis 0.8. Mit diesem Datensatz an 595 Minimal Contracts evaluieren wir drei Werkzeuge zur Erkennung von Schwachstellen: Mythril und Slither basieren auf statischer Analyse, während ConFuzzius ein dynamisches Analysetool auf Basis von Hybrid-Fuzzing ist. Die Ergebnisse zeigen Unterschiede in den Erkennungsfähigkeiten. Mythril zeigt die ausgewogenste Performanz über Low-Level Konstrukte und Compiler Versionen hinweg, scheitert jedoch bei call-basierten Contracts mit Solidity Version 0.8. Slither erkennt die meisten Varianten konsistent, übersieht jedoch eine Gruppe von Testfällen. ConFuzzius erzielt gute Ergebnisse bei send und call, kann jedoch Schwachstellen in delegatecall, staticcall und callcode nicht identifizieren, ebenso wenig wie Schwachstellen in Konstruktoren, da nur Runtime Code analysiert wird. Insgesamt liefert diese Studie wertvolle Einblicke in die Stärken und Schwächen aktueller Tools zur Schwachstellenerkennung in Smart Contracts.
Institutions
- TU Wien (AT)
Publication Details
- Journal
- reposiTUm (TU Wien)
- Published
- 2025-09-01
- DOI
- https://doi.org/10.34726/hss.2025.132006
- Primary Topic
- Blockchain Technology Applications and Security
- Type
- article
- Field-Weighted Citation Impact
- 0.00