首页 > 观点 > 正文
欧意交易所

欧意交易所

全球前三大交易所之一,新用户注册最高可得230USDT奖励,同时可拆数字盲盒,100%可以获得数字货币,最高价值60000元

点击注册 进入官网

x911S72ZXd2zcOsjg9YXBanFLZ6cX6mRmq4SCVEz.jpeg

事件背景

2023 年 12 月 20 日下午 我们监控到 Transit Swap 项目遭到黑客在多个公链上的攻击交易,且最终黑客共计获利约 110k $。

下方为该漏洞合约在多个链上的部署地址:

https://docs.transit.finance/en/reference/smart-contracts

0pTwZLXxzDHAbQdQYBHXIOEx4DBzL93WcoyIVZs1.png

攻击交易:

0x93ae5f0a121d5e1aadae052c36bc5ecf2d406d35222f4c6a5d63fef1d6de1081(BSC链)

攻击分析

由于攻击者在多个链上对该项目进行攻击,本文主要通过对BNB链上攻击者交易数据进行分析,并对其交易进行整理归纳。

黑客通过 TransitSwapRouterV5 合约的多路径兑换功能将 0.01 BNB 成功兑换了约为 173.9 BNB ,如下图:

pJ6KyebKWhM3jQgIulOTbYPYkmvhnnbPDXGAszjT.png

通过交易堆栈数据,我们看出该笔兑换操作经过 2 次兑换操作,不过期间调用了一个未验证的交易对合约

(0x7d7583724245eeebb745ebcb1cee0091ff43082b),并将一个最小单位的BNB( 1/1e18 BNB )兑换为了约 43841.86 USDT,而且此处兑换得到的金额与当前 TransitSwapRouterV5 合约的自身USDT储备余额一致。

根据攻击交易的参数对其合约逻辑进行分析:

DAKUeRiXnU7oawPXKemZqnkpt0OyKKPUjkEQqAi9.png

当兑换路径大于1时的逻辑如下:

OUkbtoH3NNYxds06Fh7rTl6VkF72ASLD99NwaSnN.png

深入 _swap 函数,查看具体兑换逻辑,此处的内部兑换函数在调用外部传入的 pool 池子进行代币兑换后,未对兑换后的资金进行校验,直接使用 pool 返回的兑换金额进行下一个路径的兑换操作,从而导致攻击者构造假的 pool 合约并直接在swap函数中返回当前TransitSwapRouterV5 合约自身的USDT储备,进而造成合约资金被拿去做第二次兑换,最终使攻击者获利。

hCRJR7ajJF162JcCtDIRmXrijMJ2FS7ki3wak5mT.png

经分析该攻击者获利资金最终流入 Tornado Cash 混币平台。

Szih5aBBspdI0JnvFPgFNcoC1TU3LvPPN8gq4HhX.png

总结

简单来说,TransitSwapRouterV5 合约中多路径兑换函数缺少兑换成功校验,导致多路径兑换中使用虚假的兑换金额在后续的兑换中换取真实资金并成功获利。

安全建议

  • 在多路径兑换代币时对传入的交易对池子进行校验,或对多路径兑换操作中的兑换结果进行校验,如某次兑换资金未到账或兑换失败则直接回滚,避免攻击者使用虚假交易池造成的虚假兑换。

  • 建议项目方上线前进行多次审计,避免出现审计步骤缺失。

白话区块链|同步全球区块链资讯、区块链快讯、区块链新闻
本站所有文章数据来源:金色财经
本站不对内容真实性负责,如需转载请联系原作者
如需删除该文章,请发送本文链接至oem1012@qq.com

更多交易所入口

一站式注册各大交易所、点击进入加密世界、永不失联,币安Binance/欧易OKX/GATE.IO芝麻开门/Bitget/抹茶MEXC/火币Huobi

点击进入 永不失联
picture loss