Poly Network遭黑客攻击:合约漏洞导致keeper被篡改

robot
摘要生成中

Poly Network 遭受黑客攻击事件分析

近日,跨链互操作协议 Poly Network 遭遇黑客攻击,引发了广泛关注。根据安全团队的分析,此次攻击并非由于 keeper 私钥泄露造成,而是攻击者通过巧妙构造的数据,利用合约漏洞修改了 EthCrossChainData 合约的 keeper 地址。

攻击核心

攻击的关键在于 EthCrossChainManager 合约中的 verifyHeaderAndExecuteTx 函数。该函数可以通过 _executeCrossChainTx 函数执行特定的跨链交易。由于 EthCrossChainData 合约的所有者是 EthCrossChainManager 合约,因此后者有权调用 EthCrossChainData 合约的 putCurEpochConPubKeyBytes 函数来更改 keeper。

攻击者利用这一机制,通过 verifyHeaderAndExecuteTx 函数传入精心设计的数据,使 _executeCrossChainTx 函数执行了对 EthCrossChainData 合约的 putCurEpochConPubKeyBytes 函数调用,从而将 keeper 角色更改为攻击者指定的地址。

攻击过程

  1. 攻击者首先通过 EthCrossChainManager 合约的 verifyHeaderAndExecuteTx 函数调用 putCurEpochConPubKeyBytes 函数,更改了 keeper。

  2. 完成 keeper 角色地址替换后,攻击者便可以随意构造交易,从合约中提取任意数量的资金。

  3. 攻击完成后,由于 keeper 被修改,导致其他用户的正常交易被拒绝执行。

  4. 这一攻击模式不仅在BSC链上实施,以太坊网络上也发生了类似的操作。

结论

此次攻击的根本原因在于 EthCrossChainData 合约的 keeper 可被 EthCrossChainManager 合约修改,而 EthCrossChainManager 合约的 verifyHeaderAndExecuteTx 函数又能执行用户传入的数据。攻击者正是利用了这一设计缺陷,通过构造特定数据修改了 EthCrossChainData 合约的 keeper 地址,而非此前传言的 keeper 私钥泄露。

这一事件再次凸显了跨链协议安全设计的重要性,以及对合约权限管理的严格要求。it也提醒我们,在区块链生态系统中,即使是看似无害的功能,如果被恶意利用,也可能导致严重的安全漏洞。

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 4
  • 分享
评论
0/400
ServantOfSatoshivip
· 16分钟前
又躺了又躺了…
回复0
Floor_Sweepervip
· 07-16 15:47
又一个 老传统了属于是
回复0
ApeWithNoChainvip
· 07-16 15:38
又一个合约被玩崩咯~
回复0
喝茶看盘侠vip
· 07-16 15:30
又是keeper出问题 啧啧
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)