2 月 28 日,Seneca 商会合约中的一个严重漏洞被利用。攻击者利用此漏洞窃取了批准超过Chamber合约抵押品的用户资金。这次攻击专门针对用户钱包中持有的资产,而不是直接存入 Seneca 核心系统(TVL + Stake)的资金。
漏洞利用分析
攻击者瞄准了
Seneca's Chamber.sol
合约中的performOperations()
函数。此函数允许任意呼叫其他合约,攻击者利用它来执行.transferFrom()
呼叫。这使得攻击者能够使用 Chamber 合约作为支出者,将代币直接从批准用户的钱包转移到攻击者的钱包。这种攻击会影响所有在使用Chamber合约时批准的抵押品金额超过其实际存款的用户。总计 640 万美元被盗。幸运的是,在白帽骇客介入并返还大部分资金后,大约 530 万美元(80%)被追回,并保留了 104 万美元(20%)作为赏金。
这是利用交易之一: https://etherscan.io/tx/0x9f3712672be7a120757d42fbe15ceefe9578914946bacbd0f3531e7fb7305576
结论
作为开发人员,在建立自己的专案时,不信任任何使用者输入。给定的任何参数都必须由程式码仔细验证。呼叫不受信任的合约可能会带来一些意想不到的风险或错误。外部呼叫可能会在目标合约内或其生态系统中触发恶意程式码。每个外部呼叫都应被视为潜在的安全风险,并且必须极为谨慎地处理。
此外,强烈建议对所有项目进行安全审计,即使它们是智能合约、后端、钱包或 dapp。
作为区块链用户,请记住:批准代币将授予陌生人随意使用代币的权限。避免无限次批准,始终分配每笔交易所需的确切金额,即使会产生额外费用。立即主动审查并撤销不必要的批准以保护您的资金。
感谢您阅读 Verichains!免费订阅以接收新帖子并支持我的工作。