黑客创建了一个协议修改提案,提案在被投票时的代码看起来毫无问题。
原文作者:icuke
原文来源:Twitter
注:原文来自@icuke发布长推。
5月20日15点25分,著名的龙卷风协议Tornado Cash因为一次治理攻击被黑客控制了。
攻击过程:黑客创建了一个协议修改提案,提案在被投票时的代码看起来毫无问题,但是,投票通过后selfdestruct重部署成恶意代码(相同的bytecode,但由于initialization code就依赖于了外部合约/状态,悲剧发生)。
@0xngmi 分享过一篇关于这个问题的长文,确实是一个被广泛忽视的严重问题。
攻击结果:黑客给了自己120万投票权,已经远多于70万真实投票,所以他有了100%的协议治理控制。他可以干什么?可以提取所有锁定的票数TORN、清空治理合约中的所有代币以及使路由器变成无用状态。虽然以太坊网络上的资金池资金无法被盗走,但是arbitrum nova上的资金池属于治理控制,是黑客控制的。
总结下重点,如果一个部署的协议时候包括create2和selfdestruct这俩opcode,那么他就等同于一个可升级合约。坎昆升级的EIP也已经提议要修改selfdestruct了,在此之前还是需要多小心这个问题。