{"content":{"title":"零时科技 || 白帽行为？Arbitrum链上EDE Finance 攻击事件分析","body":"<!--StartFragment-->\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=MjdlYjcyZGQ4ZGViMGUxOTc1NTM1ODFiOTc2YWVlN2YsMTY4NTUxMDI3NjEyMA==)[]()\r\n\r\n# 事件背景\r\n\r\n零时科技区块链安全情报平台监控到消息，北京时间2023年5月30日，Arbitrum链上EDE Finance项目受到黑客攻击，攻击者获利 597,694 USDC及86,222 USDT，攻击者地址为0x80826e9801420e19a948b8ef477fd20f754932dc。**攻击者完成攻击后，在链上留言声称为“白帽行为”，目前攻击者已返还EDE FinanceEDE Finance项目333,948 USDC及86,222 USDT，留下部分USDC未转移。**零时科技安全团队及时对此安全事件进行分析。\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=MzMzMWFmYTljNmE2ZjgzZjg2MDI1ZjM2YmVhZjAyOGEsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n# 攻击过程分析\r\n\r\n* **攻击时间背景**\r\n\r\n攻击者提前创建好攻击合约：\r\n\r\n0x6dd3d2fb02b0d7da5dd30146305a14190e6fb892\r\n\r\n创建攻击合约的交易hash:\r\n\r\n0xd7bfe2ed548c40d3e9b301a83f16e9c4080e151470ebf4d03c83ff302b9ad99e\r\n\r\n攻击合约是一个代理合约，其主要逻辑合约位于：\r\n\r\n0x171c01883460b83144c2098101cd57273b72a054，未做合约验证\r\n\r\n攻击者其中一组攻击交易：\r\n\r\n0xc3677aec922f3c0641176277d9923bf03ff400e9b79013ba86ac8ceb878fcd86\r\n\r\n0x6e48dbe65c9997d774d75bc01468a354c3660a44eef59a4383639933a50fc814\r\n\r\nEDE项目的价格预言机合约 **VaultPriceFeedV21Fast ：​**\r\n\r\n0x046600975bed388d368f843a67e41545e27a2591\r\n\r\nEDE项目的**Router**合约：\r\n\r\n0x2c7077cf9bd07c3bc45b4e5b8c27f8b95c6550b3\r\n\r\nEDE项目的 **RouterSign** 合约：\r\n\r\n0xd067e4b0144841bc79153874d385671ea4c4e4df ，此合约地址拥有Updater管理员权限，该权限可以进行加密资产的价格设置，如下图所示。\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=OTIwMTZmMmY2NzA2N2Y2NTNmYmU4YzdmMzdiZTZmZWIsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n* **攻击步骤**\r\n\r\n1.攻击者部署攻击合约\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=Mjg3NDU5MDliN2FmMmI0MmVlNGFkODU5MTFlMzFkMjgsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n2.攻击者通过调用攻击合约，间接调用了 RouterSign 合约中的添加仓位操作\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=NzZhYjU3ZWJjOThkNzgwM2M5YjYzNDAyNDBjYjFmZDksMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=NWEwMWM1ZDRmZWMzYTRlZGViNzY5ZDNiODI0ZTYxYzAsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n3.随后攻击者立即又利用攻击合约调用了 Router 合约的减仓操作\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=ZWMzZmMyMmIyYzlmNmMwN2ZkYTQzNTQwNmQ5ZjQ0OTAsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=NDlhYmQ4ZGM5YzIzY2FmMDJjMGEzOGRkMmRhNjJmNjQsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n4.后续，攻击者通过重复上述攻击步骤，通过多次加仓减仓，进行大额获利\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=YWRmOGEwZDFmZjk5OWUyZmMxNThkNmViNDViOThmZWYsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n# 核心漏洞\r\n\r\n根据对攻击交易分析，发现攻击者通过加仓与减仓直接使用的价格差从而获取巨额资金，具体如下分析过程。\r\n\r\n**加仓时使用价格：**\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=MjQ0ZTdiOGI3Zjg4ZWQyNGU4MTE4MDZkNTA4NDlkM2QsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n**减仓时使用价格：**\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=NWEzMDhhZjgzYzU1ZDE0ZGE0Nzc4NTUwMTkyNGY5ODMsMTY4NTUxMDI3NjEyMQ==)[]()\r\n\r\n加仓和减仓的价格明显存在较大差距。\r\n\r\n通过对攻击者交易的调用堆栈发现，其在加仓时，通过调用了EDE项目中价格预言机的更新价格功能updateWithSig ，而预言机的喂价功能不仅限制了必须存在 Updater 特权角色，且必须使用 Updater 角色进行签名才可以正常调用。\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=MjVmYThmMzg0Y2I0ZWUzZmRlOTg0MjNlOTA1ZDNiYWIsMTY4NTUxMDI3NjEyMg==)[]()\r\n\r\n但攻击者利用了 RouterSign 合约的加仓函数，间接调用 价格预言机中的 updateWithSig 特权函数，从而成功绕过了原本的onlyUpdater权限限制。\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=ZGExNTE3Y2E3OGY5NjQyMGNkZTYzMDg1YzkxMmEyMGYsMTY4NTUxMDI3NjEyMg==)[]()\r\n\r\n并且由于EDE价格预言机中喂价签名验证机制存在问题，虽然对签名时间进行了校验，但未对已经使用过的签名进行校验，导致攻击者可以重放管理员签名。\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=OGM5MmM2YzkzMzNkYzA2YjkwMDQ4ZGRlY2NkOGRiYTIsMTY4NTUxMDI3NjEyMg==)[]()\r\n\r\n如下图为攻击者间接调用预言机喂价功能传递的签名参数：\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=ZDJkYzQ5NDRjNTkzN2ZlZWNlZDdkZjZhYTkwM2JiYzUsMTY4NTUxMDI3NjEyMg==)[]()\r\n\r\n如下图为EDE项目管理员通过预言机合约直接调用喂价功能使用的参数：\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=Y2FiODlkZGViNDc2MjVjMzliZjZmNWY1ODY2ZjM1NDgsMTY4NTUxMDI3NjEyMg==)[]()\r\n\r\n所以，综上所述，攻击者使用管理员签名，并且绕过onlyupdater限制，成功重放并设置了一个较高的Token价格，并在随后立即使用新价格执行加仓操作，然后攻击者立即调用 Router 合约使用正常的价格进行减仓，利用较大的价格差从而获利。\r\n\r\n# 资金来源及流向\r\n\r\n通过分析发现，攻击地址初始手续费通过0x483e657f53c7bc00c2d2a26988749dd8846229e3地址转入0.002ETH\r\n\r\n0x483e657f53c7bc00c2d2a26988749dd8846229e3地址的初始手续费通过Kucoin交易所提取\r\n\r\n![](https://mp.toutiao.com/mp/agw/article_material/open_image/get?code=MTA3MmNiYjI1YTE0MDE2ZWVhMjk0NzM2N2Q3Yzk5NjEsMTY4NTUxMDI3NjEyMg==)[]()\r\n\r\n# 总结及建议\r\n\r\n* **分析总结**\r\n\r\n本次攻击是由于项目新增合约时未进行安全审计，新增合约破坏原有合约权限认证机制，配合Updater 签名重放问题，从而导致这两个利用点被组合利用。\r\n\r\n**攻击利用点：**\r\n\r\n* RouterSign 合约中对 updateWithSig 的 Updater 特权限制绕过\r\n* Updater 特权签名重放\r\n\r\n**安全建议**\r\n\r\n1. 项目价格预言机喂价的签名验证添加唯一标识符，并限制每个签名只能使用一次；\r\n2. 项目需要确认 RouterSign 合约中的功能函数是否能外部公开，且设置权限校验。\r\n\r\n<!--EndFragment-->"},"author":{"user":"https://learnblockchain.cn/people/52","address":null},"history":null,"timestamp":1685510612,"version":1}