慢雾:简析Punk Protocol 被黑过程

2021年8月12日 19:42
收藏

链捕手消息,去中心化年金协议 Punk Protocol 在公平启动的过程中遭遇攻击,损失约400万美元,慢雾安全团队以简讯形式将攻击原理分享如下:

  1. 攻击者调用 CompoundModel 合约的 Initialize 函数进行重复初始化操作,将合约 Forge 角色设置为攻击者指定的地址。

  2. 随后攻击者为了最大程度的将合约中资金取出,其调用了 invest 函数将合约中的资金抵押至 Compound 中,以取得抵押凭证 cToken。

  3. 最后攻击者直接调用 withdrawToForge 函数将合约中的 cToken 转回 Compound 获取到对应的底层资产并最终将其转给 Forge 角色。

  4. withdrawToForge 函数被限制只有 Forge 角色可以调用,但 Forge 角色已被重复初始化为攻击者指定的地址,因此最终合约管理的资产都被转移至攻击者指定的地址。

总结:本次攻击的根本原因在于其 CompoundModel 的 Initialize 函数未做重复初始化检查,导致攻击者直接调用此函数进行重复初始化替换 Forge 角色,最终造成合约管理的资产被盗。

链捕手ChainCatcher提醒,请广大读者理性看待区块链,切实提高风险意识,警惕各类虚拟代币发行与炒作, 站内所有内容仅系市场信息或相关方观点,不构成任何形式投资建议。如发现站内内容含敏感信息,可点击 “举报”,我们会及时处理。
ChainCatcher 与创新者共建Web3世界