# Poly Network 协议遭受黑客攻击事件分析近日,跨链互操作协议 Poly Network 遭遇黑客攻击,引发了业界广泛关注。安全团队对此事件进行了深入分析,认为攻击者是通过巧妙构造数据,修改了 EthCrossChainData 合约的 keeper 地址,而非此前传言的 keeper 私钥泄露导致。## 攻击核心攻击的关键在于 EthCrossChainManager 合约中的 verifyHeaderAndExecuteTx 函数。该函数能够通过 _executeCrossChainTx 函数执行特定的跨链交易。由于 EthCrossChainData 合约的所有者是 EthCrossChainManager 合约,因此后者可以调用前者的 putCurEpochConPubKeyBytes 函数来更改合约的 keeper。攻击者利用 verifyHeaderAndExecuteTx 函数,传入精心设计的数据,使 _executeCrossChainTx 函数调用 EthCrossChainData 合约的 putCurEpochConPubKeyBytes 函数,从而将 keeper 角色更改为攻击者指定的地址。完成这一步后,攻击者就能随意构造交易,从合约中提取任意数量的资金。## 攻击过程1. 攻击者首先通过 EthCrossChainManager 合约的 verifyHeaderAndExecuteTx 函数调用 putCurEpochConPubKeyBytes 函数,更改了 keeper。2. 随后,攻击者开始实施一系列攻击交易,从合约中提取资金。3. 由于 keeper 被修改,导致其他用户的正常交易被拒绝执行。4. 类似的攻击手法也在以太坊网络上得到了应用。## 结论此次攻击的根本原因在于 EthCrossChainData 合约的 keeper 可被 EthCrossChainManager 合约修改,而后者的 verifyHeaderAndExecuteTx 函数又能执行用户传入的数据。攻击者正是利用了这一漏洞,通过构造特定数据,成功更改了 EthCrossChainData 合约的 keeper 地址。这一发现澄清了此前关于 keeper 私钥泄露的错误传言。本次事件再次凸显了跨链协议安全的重要性。对于复杂的智能合约系统,尤其是涉及跨链操作的项目,需要更加严格的安全审计和风险评估。同时,这也提醒了区块链项目开发者要格外注意权限管理和数据验证的问题,以防止类似的安全漏洞被利用。
Poly Network黑客攻击原因揭秘:EthCrossChainData合约keeper被篡改
Poly Network 协议遭受黑客攻击事件分析
近日,跨链互操作协议 Poly Network 遭遇黑客攻击,引发了业界广泛关注。安全团队对此事件进行了深入分析,认为攻击者是通过巧妙构造数据,修改了 EthCrossChainData 合约的 keeper 地址,而非此前传言的 keeper 私钥泄露导致。
攻击核心
攻击的关键在于 EthCrossChainManager 合约中的 verifyHeaderAndExecuteTx 函数。该函数能够通过 _executeCrossChainTx 函数执行特定的跨链交易。由于 EthCrossChainData 合约的所有者是 EthCrossChainManager 合约,因此后者可以调用前者的 putCurEpochConPubKeyBytes 函数来更改合约的 keeper。
攻击者利用 verifyHeaderAndExecuteTx 函数,传入精心设计的数据,使 _executeCrossChainTx 函数调用 EthCrossChainData 合约的 putCurEpochConPubKeyBytes 函数,从而将 keeper 角色更改为攻击者指定的地址。完成这一步后,攻击者就能随意构造交易,从合约中提取任意数量的资金。
攻击过程
攻击者首先通过 EthCrossChainManager 合约的 verifyHeaderAndExecuteTx 函数调用 putCurEpochConPubKeyBytes 函数,更改了 keeper。
随后,攻击者开始实施一系列攻击交易,从合约中提取资金。
由于 keeper 被修改,导致其他用户的正常交易被拒绝执行。
类似的攻击手法也在以太坊网络上得到了应用。
结论
此次攻击的根本原因在于 EthCrossChainData 合约的 keeper 可被 EthCrossChainManager 合约修改,而后者的 verifyHeaderAndExecuteTx 函数又能执行用户传入的数据。攻击者正是利用了这一漏洞,通过构造特定数据,成功更改了 EthCrossChainData 合约的 keeper 地址。这一发现澄清了此前关于 keeper 私钥泄露的错误传言。
本次事件再次凸显了跨链协议安全的重要性。对于复杂的智能合约系统,尤其是涉及跨链操作的项目,需要更加严格的安全审计和风险评估。同时,这也提醒了区块链项目开发者要格外注意权限管理和数据验证的问题,以防止类似的安全漏洞被利用。