的。 Curve Finance 在 Twitter 上宣布,Arbitrum上的一个资金池有可能受到影响,但没有可供恶意行为者执行的有利可图的漏洞,这意味着资金池不太可能受到攻击。CertiK也尚未检测到任何其他利用Vyper漏洞的攻击。 攻击流程 以下是以JPEG’d为目标的交易示例: 攻击者: 0x6ec21d1868743a44318c3c259a6d4953f9978538 攻击合约: 0x466b85b49ec0c5c1eb402d5ea3c4b88864ea0f04#code 1. 攻击者首先从 Balancer:Vault中借入80,000 WETH (约合149,371,300美元) 2. 然后,攻击者将WETH 换成 ETH,调用 pETH-ETH-f.add_liquidity(),将 40,000 ETH(约合74,685,650美元)添加到 pETH-ETH-f 池中。作为回报,攻击者收到了32,431枚pETH(pETH-ETH-f)。 3. 攻击者调用 remove_liquidity() 删除了在步骤2中添加的流动性。3,740 pETH 和 34,316 ETH 被转入攻击合约,攻击合约的 fallbak() 函数被触发了,将控制权交给了攻击者。在 fallback() 函数中,攻击者又向 pETH-ETH-f 池中添加了40,000 ETH的流动性,并收到了 82,182 pETH。 4. 攻击者再次调用remove_liquidity(),取出10,272pETH,收到47,506 ETH和1,184pETH。然后,攻击者在pETH-ETH-f 池中用4,924枚 pETH交换了4,285枚ETH。 总的来说,攻击者从第3步获得了34,316枚ETH,从第4步获得了47,506和 4,285枚ETH,共计 86,107枚ETH。在偿还了 80,000 ETH闪电贷后,攻击者还剩下6,107 ETH(约11,395,506美元)。 漏洞 该漏洞允许攻击者在移除流动性过程中调用添加流动性函数。虽然这些函数本应受到 @nonreentrant('lock')的保护,但对 add_liquidty() 和 remove_liquidity() 函数的测试证明,它并不能防止重入攻击。 Vyper_contract for Curve.fi Factory Pool 数据源: Etherscan 继利用 JPEG'd、Metronome 和 Alchemix 漏洞之后,Vyper 的 v0.2.15、v0.2.16 和 v0.3.0 版本确实存在重入保护失败的漏洞。 解决措施 使用易受攻击的Vyper版本的项目应联系 Vyper协助进行缓解。项目也应尽量升级到不含此漏洞的最新版Vyper。 总结 Vyper被攻击事件是CertiK2023 年检测到的最大的重入漏洞。就资金损失而言,该攻击损失金额占据了此类事件的78.6%。 今年两起最大的重入漏洞,都是利用Vyper编写的合约,尽管漏洞并不相同。 目前,2023 年所有链中因重入攻击造成的损失已超过 6,600 万美元。这比 2020年全年多出约400万美元,仅比 2021年的损失额少100万美元。值得注意的是,2023年的总额也比 2022 年因重新定位攻击造成的损失增加了 259.45%。 来源:金色财经lg...