零时科技 || TransitSwapRouterV5攻击分析

2024-01-03 20:01:38

事件背景

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

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

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

攻击交易:

0x93ae5f0a121d5e1aadae052c36bc5ecf2d406d35222f4c6a5d63fef1d6de1081(BSC链)

攻击分析

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

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

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

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

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

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

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

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

总结

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

安全建议

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

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

郑重声明:本文版权归原作者所有,转载文章仅为传播信息之目的,不构成任何投资建议,如有侵权行为,请第一时间联络我们修改或删除,多谢。

推荐文章

btc日内再次下跌 短线应当如何处理?

尽管以太坊现货ETF获批是个好消息,但市场反应却不如预期。在消息公布后,以太坊价格出现了小幅下跌,...

加密莲
926 1年前

7月23日、BTC(合约)ETH(合约)行情分析及操作策略

昨日收益还是不错的,日内给出的现价空单分别止盈我们目标点位,恭喜跟上的朋友吃肉。时间一晃到月底了,...

倪老师
915 1年前

币圈院士:血与泪的教训!交易者为何总是撞死在同一棵树上?

币圈院士谈。交易市场中的几种“死法” 在币圈市场鳞次栉比的海洋,风起云涌,时常让人感到惊手不及。在...

币圈院士
904 1年前

7月23:Mt. Gox 比特币钱包在市场紧缩的情况下转移了价值 28.2 亿美元的 BTC

7月23:Mt. Gox 比特币钱包在市场紧缩的情况下转移了价值 28.2 亿美元的 BTC一个引...

168超神
884 1年前

悦盈:比特币68000的空完美落地反弹继续看跌 以太坊破前高看回撤

一个人的自律中,藏着无限的可能性,你自律的程度,决定着你人生的高度。 人生没有近路可走,但你走的每...

我是周悦盈
883 1年前

btc完美盈利 晚间波动较大注意

昨日btc空单完美给到,最大化走出一千七百点空间~ btc: 日内开盘下跌继续测试66000一线,...

加密莲
867 1年前