损失超700万美元!Polter Finance事件漏洞分析与被盗资金追踪

文摘   2024-11-20 13:26   中国香港  

2024年11月17日,据Beosin Alert监控预警发现FTM链上借贷协议Polter Finance遭受攻击,攻击者通过闪电贷操纵项目合约中代币价格进行获利Beosin对本次事件第一时间进行了漏洞分析和资金追踪。


详细攻击步骤:


(1) 攻击者部署攻击合约 (0xa21451ac32372c123191b3a4fc01deb69f91533a)

并使用该合约在UniswapV2 Pair (0xEc7178F4C41f346b2721907F5cF7628E388A7a58) 上执行闪电贷。攻击者借用了几乎所有可用的BOO代币,只留下了1,000,000个BOO代币。


(2) 本次事件被攻击的LendingPool合约(0xd47ae558623638f676c1e38dad71b53054f54273)使用0x6808b5ce79d44e89883c5393b487c4296abb69fe作为预言机,该预言机使用的是近期部署的喂价合约(0x80663edff11e99e8e0b34cb9c3e1ff32e82a80fe)。这种喂价机制是有缺陷的,并且依赖于易被操纵的UniswapV2 Pair的代币储备来进行价格计算



(3) 这个喂价合约使用可被攻击者用于闪电贷的uniswapV2_pair(0xEc71)合约中的代币储备来计算价格,因此这里存在价格操纵攻击漏洞


(4) 在闪电贷之后,token1_in_pair的储备下降到只有100万BOO代币,导致其计算后的价格比原来增加了1.373 × 10¹⁸倍。这使得攻击者可以借出远远超过其抵押品价值的资产。


原来的代币价格

   闪电贷后错误的价格

(5) 攻击者使用存款功能向LendingPool中存入1个BOO代币。由于价格被操纵,该单个BOO代币的价值被放大了1.373 × 10¹⁸倍。


(6) 攻击者利用操纵后的代币价格来借出大量其它资产。在调用borrow函数,攻击者通过了合约中的价格验证,因为该函数错误地验证了被操纵的BOO代币价格。


被盗资金追踪:


Beosin Trace对被盗资金进行追踪发现被盗资金被攻击者转换成FTM代币,然后跨链到ETH链,将所有资金都存放在ETH链上。以下是ARB链和ETH链上的资金流动过程示意图。


Beosin Trace部分被盗资金流向图

在经历了一系列跨链代币兑换的损耗后,存放在ETH链总额约为776万USDT。以下是存放被盗资金的地址:


11月20日,攻击者持续向Tornado Cash 转移了超过2625枚ETH,如下图所示。Beosin Trace已将黑客相关地址加入黑地址库,后续将持续追踪
Beosin Trace分析,被盗资金存入Tornado Cash

Beosin作为全球最早一批从事形式化验证的区块链安全公司,主打”安全+合规“全生态业务,在全球10多个国家和地区设立了分部,业务涵盖项目上线前的代码安全审计、项目运行时的安全风险监控与阻断、被盗追回、虚拟资产反洗钱(AML)以及符合各地监管要求的合规评估等“一站式”区块链合规产品+安全服务。欢迎点击公众号留言框,与我们联系。































Beosin
Beosin作为一家全球领先的区块链安全公司,已在全球10多个国家和地区设立了分部,为区块链生态提供代码安全审计,安全风险监控、预警与阻断,虚拟资产被盗追回,KYT/AML等“一站式”安全产品+服务,保护客户资产高达5000多亿美元。
 最新文章