mt logoMyToken
Market cap:
0%
FGI:
0%
Cryptocurrencies:--
Exchanges --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

跨链DEX聚合器Transit Swap攻击分析

Collect
Share

10月2日,跨链 DEX 聚合器Transit Swap遭受攻击,导致大量用户的资金从钱包中被取出,预计损失超 2100 万美元。 Transit Finance 称,各方安全公司和项目组仍在继续追踪黑客事件,并通过邮件、链上等方式与黑客进行沟通。项目组正在抓紧收集被盗用户的具体数据,制定具体的返还方案。同时团队将继续追回黑客被盗资产的剩余资产,并将其归还给丢失的用户。截止发稿前,黑客已经归还约70%的资产。

image.png

Hyperlab 安全实验室根据链上交易进行分析,此次攻击发生的要原因在于 Transit Swap 协议在进行代币兑换时并未对用户传入的数据进行严格检查,导致了任意外部调用的问题。

具体来说,

用户在用Transit Swap进行兑换时,会调用一个 代理合约 。这个代理合约会根据代币的种类选择路径。紧接着路由桥合约会调用权限管理合约的claimtokens进行转账。而 claimTokens 函数是通过调用指定代币合约的 transferFrom 函数进行转账的。其接收的参数都由上层路由桥合约传入,本身没有对这些参数进行任何限制,只检查了调用者必须为路由代理合约或路由桥合约。

攻击者利用路由代理合约、路由桥合约与权限管理合约未对传入的数据进行检查的缺陷,通过路由代理合约传入构造后的数据调用路由桥合约的 callBytes 函数。callBytes 函数解析出攻击者指定的兑换合约与兑换数据。此时兑换合约被指定为权限管理合约地址,兑换数据被指定为调用 claimTokens 函数将指定用户的代币转入攻击者指定的地址中。由此攻击者实现了窃取所有对权限管理合约进行授权的用户的代币。

Hyperlab 安全实验室提醒,在跨合约的函数调用时,合约开发者需要对用户传入的数据进行严格检查,并对下层对上层给的返回值进行正确校验。对Transit Swap用户而言,需停止使用Transit Swap,并提高自身对区块链钱包的安全意识,尤其是对 DEX 的router的无限授权权限保持谨慎。

 

Disclaimer: The copyright of this article belongs to the original author and does not represent MyToken(www.mytokencap.com)Opinions and positions; please contact us if you have questions about content