一背景
2021年8月10日晚,有消息称PolyNetwork跨链项目被攻击导致约6亿美金的损失,知道创宇区块链安全实验室对该事件展开分析。
二攻击地址及交易
事件一共使三条链:ETH、BSC、Polygon上的资产收到了损失,由于攻击过程类似,这里挑选BSC链的攻击作为分析样本。
被攻击合约:
EthCrossChainManager:https:bscscan。comaddress0x7cea671dabfba880af6723bddd6b9f4caa15c87bEthCrossChainData:https:bscscan。comaddress0x11e2a718d46ebe97645b87f2363afe1bf28c2672
攻击交易:
https:bscscan。comtx0x3eba3f1fb50c4cbe76e7cc4dcc14ac7544762a0e785cf22034f175f67c8d3be9(改变EthCrossChainData的Keeper)
https:bscscan。comtx0x534966864bda354628d4f1c66db45cbefcdda7433e9576e7664fea01bb05be9a(盗取合约下代币)三漏洞原因
漏洞原因其实出在EthCrossChainManager合约的verifyHeaderAndExecuteTx函数可以在其他链构造交易修改BSC链上的keeper(可以理解为交易验证者),从而黑客添加自身为验证者后以合约的身份调用外部合约进行盗币。
EthCrossChainManager合约的verifyHeaderAndExecuteTx函数通过校验其他链的区块信息来实现跨链验证操作,攻击者通过构造交易在其他链发起了一笔构...
(全文)