2024 年 7 月 16 日, LIFI的新 facet 合约中存在一个严重漏洞。攻击者利用此漏洞窃取了为LIFI合约批准了超额金额的用户的资金。此次攻击共窃取了约 1160 万美元,影响了以太坊和Arbitrum上多个用户钱包中的多项资产。
漏洞分析
攻击者瞄准了depositToGasZipERC20 () 函数。该函数使用LibSwap.swap () 函数将 ERC20 代币兑换为原生代币,但未根据已批准的合约地址和函数白名单验证用户输入的_swapData 。由于缺乏验证,攻击者可以对任何合约执行任意调用。
以下是其中一个漏洞交易: https://etherscan.io/tx/0xd82fe84e63b1aa52e1ce540582ee0895ba4a71ec5e7a632a3faa1aff3e763873
结论
作为开发人员,在构建自己的项目时,不要信任任何用户输入。任何给定的参数都必须经过代码的仔细验证。对不受信任的合约的调用可能会带来一些意想不到的风险或错误。外部调用可能会触发恶意代码,无论是在目标合约内还是在其生态系统中。每个外部调用都应被视为潜在的安全风险,必须极其谨慎地处理。
此外,强烈建议进行安全审计,不仅针对第一个发布版本,还针对将来添加的任何新功能。由于升级过程可能会引发各种问题,因此也应进行彻底审计。
作为区块链用户,请记住:批准代币意味着允许陌生人随意使用它们。避免无限批准,始终为每笔交易分配所需的确切金额,即使会产生额外费用。主动审查并撤销不必要的批准,以保护您的资金。
感谢阅读 Verichains!免费订阅以接收新帖子并支持我的工作。