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

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
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Investigating Vulnerability Detection Tools and Solidity Compiler Versions on the Vulnerability of Unchecked Call Return Values

reposiTUm (TU Wien)
Blockchain Technology Applications and Security
article

Investigating Vulnerability Detection Tools and Solidity Compiler Versions on the Vulnerability of Unchecked Call Return Values

article en

Abstract

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.

reposiTUm (TU Wien)
TU Wien (AT)
Decent work and economic growth
Openalex Percentile: Top 33%
Blockchain Technology Applications and Security
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Investigating Vulnerability Detection Tools and Solidity Compiler Versions on the Vulnerability of Unchecked Call Return Values · reposiTUm (TU Wien) (2025) | TGRS Research Map | TGRS