零时科技 || 白帽行为?Arbitrum链上EDE Finance 攻击事件分析

本次攻击是由于项目新增合约时未进行安全审计,新增合约破坏原有合约权限认证机制,配合Updater 签名重放问题,从而导致这两个利用点被组合利用。

<!--StartFragment-->

[]()

事件背景

零时科技区块链安全情报平台监控到消息,北京时间2023年5月30日,Arbitrum链上EDE Finance项目受到黑客攻击,攻击者获利 597,694 USDC及86,222 USDT,攻击者地址为0x80826e9801420e19a948b8ef477fd20f754932dc。攻击者完成攻击后,在链上留言声称为“白帽行为”,目前攻击者已返还EDE FinanceEDE Finance项目333,948 USDC及86,222 USDT,留下部分USDC未转移。零时科技安全团队及时对此安全事件进行分析。

[]()

攻击过程分析

  • 攻击时间背景

攻击者提前创建好攻击合约:

0x6dd3d2fb02b0d7da5dd30146305a14190e6fb892

创建攻击合约的交易hash:

0xd7bfe2ed548c40d3e9b301a83f16e9c4080e151470ebf4d03c83ff302b9ad99e

攻击合约是一个代理合约,其主要逻辑合约位于:

0x171c01883460b83144c2098101cd57273b72a054,未做合约验证

攻击者其中一组攻击交易:

0xc3677aec922f3c0641176277d9923bf03ff400e9b79013ba86ac8ceb878fcd86

0x6e48dbe65c9997d774d75bc01468a354c3660a44eef59a4383639933a50fc814

EDE项目的价格预言机合约 VaultPriceFeedV21Fast :​

0x046600975bed388d368f843a67e41545e27a2591

EDE项目的Router合约:

0x2c7077cf9bd07c3bc45b4e5b8c27f8b95c6550b3

EDE项目的 RouterSign 合约:

0xd067e4b0144841bc79153874d385671ea4c4e4df ,此合约地址拥有Updater管理员权限,该权限可以进行加密资产的价格设置,如下图所示。

[]()

  • 攻击步骤

1.攻击者部署攻击合约

[]()

2.攻击者通过调用攻击合约,间接调用了 RouterSign 合约中的添加仓位操作

[]()

[]()

3.随后攻击者立即又利用攻击合约调用了 Router 合约的减仓操作

[]()

[]()

4.后续,攻击者通过重复上述攻击步骤,通过多次加仓减仓,进行大额获利

[]()

核心漏洞

根据对攻击交易分析,发现攻击者通过加仓与减仓直接使用的价格差从而获取巨额资金,具体如下分析过程。

加仓时使用价格:

[]()

减仓时使用价格:

[]()

加仓和减仓的价格明显存在较大差距。

通过对攻击者交易的调用堆栈发现,其在加仓时,通过调用了EDE项目中价格预言机的更新价格功能updateWithSig ,而预言机的喂价功能不仅限制了必须存在 Updater 特权角色,且必须使用 Updater 角色进行签名才可以正常调用。

[]()

但攻击者利用了 RouterSign 合约的加仓函数,间接调用 价格预言机中的 updateWithSig 特权函数,从而成功绕过了原本的onlyUpdater权限限制。

[]()

并且由于EDE价格预言机中喂价签名验证机制存在问题,虽然对签名时间进行了校验,但未对已经使用过的签名进行校验,导致攻击者可以重放管理员签名。

[]()

如下图为攻击者间接调用预言机喂价功能传递的签名参数:

[]()

如下图为EDE项目管理员通过预言机合约直接调用喂价功能使用的参数:

[]()

所以,综上所述,攻击者使用管理员签名,并且绕过onlyupdater限制,成功重放并设置了一个较高的Token价格,并在随后立即使用新价格执行加仓操作,然后攻击者立即调用 Router 合约使用正常的价格进行减仓,利用较大的价格差从而获利。

资金来源及流向

通过分析发现,攻击地址初始手续费通过0x483e657f53c7bc00c2d2a26988749dd8846229e3地址转入0.002ETH

0x483e657f53c7bc00c2d2a26988749dd8846229e3地址的初始手续费通过Kucoin交易所提取

[]()

总结及建议

  • 分析总结

本次攻击是由于项目新增合约时未进行安全审计,新增合约破坏原有合约权限认证机制,配合Updater 签名重放问题,从而导致这两个利用点被组合利用。

攻击利用点:

  • RouterSign 合约中对 updateWithSig 的 Updater 特权限制绕过
  • Updater 特权签名重放

安全建议

  1. 项目价格预言机喂价的签名验证添加唯一标识符,并限制每个签名只能使用一次;
  2. 项目需要确认 RouterSign 合约中的功能函数是否能外部公开,且设置权限校验。

<!--EndFragment-->

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
零时科技
零时科技
专注区块链生态安全