# Poly Network遭受黑客攻击事件分析近日,跨链互操作协议Poly Network遭遇黑客攻击,引发业内广泛关注。经安全团队分析,此次攻击并非由于keeper私钥泄露造成,而是攻击者通过巧妙构造的数据,利用合约漏洞修改了EthCrossChainData合约的keeper地址。## 攻击原理攻击的核心在于EthCrossChainManager合约的verifyHeaderAndExecuteTx函数可以通过_executeCrossChainTx函数执行特定的跨链交易。由于EthCrossChainData合约的所有者是EthCrossChainManager合约,因此后者可以调用EthCrossChainData合约的putCurEpochConPubKeyBytes函数来修改合约的keeper。攻击者利用verifyHeaderAndExecuteTx函数,传入精心设计的数据,使_executeCrossChainTx函数执行对EthCrossChainData合约putCurEpochConPubKeyBytes函数的调用,从而将keeper角色更改为攻击者指定的地址。完成keeper地址替换后,攻击者便可以构造交易,随意从合约中提取任意数量的资金。## 攻击过程1. 攻击者首先通过EthCrossChainManager合约的verifyHeaderAndExecuteTx函数调用putCurEpochConPubKeyBytes函数,更改keeper。2. keeper被更改后,攻击者开始实施一系列攻击交易,从合约中提取资金。3. 攻击完成后,由于keeper已被修改,导致其他用户的正常交易被拒绝执行。4. 这种攻击模式在以太坊网络上也有类似的操作。## 总结此次攻击的关键在于EthCrossChainData合约的keeper可被EthCrossChainManager合约修改,而EthCrossChainManager合约的verifyHeaderAndExecuteTx函数又能通过_executeCrossChainTx函数执行用户输入的数据。攻击者正是利用这一点,通过构造特定数据,成功修改了EthCrossChainData合约的keeper为攻击者控制的地址。这一事件再次提醒我们,在智能合约设计中需要格外注意权限管理和函数调用的安全性。对于可能影响关键参数的函数,应该实施更严格的访问控制和安全检查机制。同时,跨链项目的安全性也需要得到更多关注,因为它们往往涉及大量资金和复杂的交互逻辑。
Poly Network遭攻击:智能合约漏洞导致keeper被篡改
Poly Network遭受黑客攻击事件分析
近日,跨链互操作协议Poly Network遭遇黑客攻击,引发业内广泛关注。经安全团队分析,此次攻击并非由于keeper私钥泄露造成,而是攻击者通过巧妙构造的数据,利用合约漏洞修改了EthCrossChainData合约的keeper地址。
攻击原理
攻击的核心在于EthCrossChainManager合约的verifyHeaderAndExecuteTx函数可以通过_executeCrossChainTx函数执行特定的跨链交易。由于EthCrossChainData合约的所有者是EthCrossChainManager合约,因此后者可以调用EthCrossChainData合约的putCurEpochConPubKeyBytes函数来修改合约的keeper。
攻击者利用verifyHeaderAndExecuteTx函数,传入精心设计的数据,使_executeCrossChainTx函数执行对EthCrossChainData合约putCurEpochConPubKeyBytes函数的调用,从而将keeper角色更改为攻击者指定的地址。完成keeper地址替换后,攻击者便可以构造交易,随意从合约中提取任意数量的资金。
攻击过程
攻击者首先通过EthCrossChainManager合约的verifyHeaderAndExecuteTx函数调用putCurEpochConPubKeyBytes函数,更改keeper。
keeper被更改后,攻击者开始实施一系列攻击交易,从合约中提取资金。
攻击完成后,由于keeper已被修改,导致其他用户的正常交易被拒绝执行。
这种攻击模式在以太坊网络上也有类似的操作。
总结
此次攻击的关键在于EthCrossChainData合约的keeper可被EthCrossChainManager合约修改,而EthCrossChainManager合约的verifyHeaderAndExecuteTx函数又能通过_executeCrossChainTx函数执行用户输入的数据。攻击者正是利用这一点,通过构造特定数据,成功修改了EthCrossChainData合约的keeper为攻击者控制的地址。
这一事件再次提醒我们,在智能合约设计中需要格外注意权限管理和函数调用的安全性。对于可能影响关键参数的函数,应该实施更严格的访问控制和安全检查机制。同时,跨链项目的安全性也需要得到更多关注,因为它们往往涉及大量资金和复杂的交互逻辑。