UPStkn事件 漏洞分析

1. 漏洞简介

https://twitter.com/BlockSecTeam/status/1615521051487932418

2. 相关地址或交易

攻击交易:Ethereum 0xd099a41830b964e93415e9a8607cd92567e40d3eeb491d52f3b66eee6b0357eb 攻击合约:0x22898dc59145eae79471dd1f06b7e542e0982d30 攻击账号:0x8a2d94ea342cbdd6d57db614b24f20cae286cac6 被攻击合约:UPStkn 0x88eBFd7841D131BCeab3e7149217aa8e36985a40

3. 获利分析

4. 攻击过程&漏洞原因

本次攻击事件的根本原因是UPStkn在tansfer时,若recipient == UNIv2 ,将会销毁池子中的部分代币,造成价格失衡:

若想尽可能的造成价格失衡,则必须增加uint256 amount = myPressure(_address); 的数量。所以攻击者会通过不断的swap来实现增加sellPressure[sender] 的值。 等到完成多次swap后,攻击者再次swap,但是参数amount的数量为0,这将销毁池子中的UPStkn数量,共计573300392063377615199234单位。销毁池子中的代币后调用池子的sync函数,此时池子价格已失衡。

攻击者获利,归还闪电贷,离场。

评论