In Ethereum, the practice of verifying the validity of the passed addresses is a common practice, which is a crucial step to ensure the secure execution of smart contracts. Vulnerabilities in the process of address verification can lead to great security issues, and anecdotal evidence has been reported by our community. However, this type of vulnerability has not been well studied. To fill the void, in this paper, we aim to characterize and detect this kind of emerging vulnerability. We design and implement AVVERIFIER, a lightweight taint analyzer based on static EVM opcode simulation. Its three-phase detector can progressively rule out false positives and false negatives based on the intrinsic characteristics. Upon a well-established and unbiased benchmark, AVVERIFIER can improve efficiency 2 to 5 times than the SOTA while maintaining a 94.3% precision and 100% recall. After a large-scale evaluation of over 5 million Ethereum smart contracts, we have identified 812 vulnerable smart contracts that were undisclosed by our community before this work, and 348 open source smart contracts were further verified, whose largest total value locked is over $11.2 billion. We further deploy AVVERIFIER as a real-time detector on Ethereum and Binance Smart Chain, and the results suggest that AVVERIFIER can raise timely warnings once contracts are deployed.
翻译:在以太坊中,验证传递地址的有效性是一种常见实践,这是确保智能合约安全执行的关键步骤。地址验证过程中的漏洞可能导致严重的安全问题,我们的研究社区已有相关案例报道。然而,此类漏洞尚未得到充分研究。为填补这一空白,本文旨在系统表征并检测这类新兴漏洞。我们设计并实现了AVVERIFIER——一种基于静态EVM操作码模拟的轻量级污点分析器。其三阶段检测器能够根据漏洞内在特性逐步排除误报和漏报。在建立完善且无偏见的基准测试集上,AVVERIFIER在保持94.3%精确率和100%召回率的同时,将检测效率提升至现有最优技术的2至5倍。通过对超过500万份以太坊智能合约的大规模评估,我们发现了812个此前未被社区披露的漏洞合约,其中348个开源合约经进一步验证确认,其最大锁定总价值超过112亿美元。我们进一步将AVVERIFIER部署为以太坊和币安智能链的实时检测器,结果表明该工具能在合约部署后及时发出安全预警。