超600万美元损失:针对Summer Finance的闪电贷攻击分析与被盗资金追棕

현재 언어 번역이 없어 원문을 표시합니다.
7月6日,以太坊网络的DeFi收益聚合协议Summer Finance受到闪电贷攻击,损失超过600万美元。以下是Beosin安全团队对此次复杂攻击的详细分析与被盗资金流向追踪。

7月6日,以太坊网络的DeFi收益聚合协议Summer Finance受到闪电贷攻击,损失超过600万美元。以下是Beosin安全团队对此次复杂攻击的详细分析与被盗资金流向追踪。

攻击流程分析

攻击交易哈希:0x0db528c44f23fc7fa4544684a2fab81096450a14aae8bc89f42cd0592d43da12

攻击者地址:0x7bf716167b48cf527725722c6d79494b45b3bdca

攻击合约地址:0x0514F827C129C16418a0933E03C99A6AF982FC61

被攻击的合约地址:

0x98C49e13bf99D7CAd8069faa2A370933EC9EcF17

0xE9cDA459bED6dcfb8AC61CD8cE08E2D52370cB06 0xA9ca4909700505585B1aD2a1579dA3b670FFA9c4

金库结构分析:

用户存入 FleetCommander 的 USDC 存放于 BufferArk,然后被分配至各个 Ark,每个 Ark 封装一个外部收益来源:ERC4626Ark 封装通用 ERC-4626(如 sUSDS),MorphoVaultArk / MorphoV2VaultArk封装 Morpho MetaMorpho / Vault V2,SiloManagedVaultArk 封装 Silo SiloVault。

FleetCommander.totalAssets()是每个 ark 的 totalAssets() 之和,它是通过在存入/赎回开始时对每个 ark 进行快照进行计算。赎回首先从 buffer 开始,然后由 arks 提供,但上限为 maxRedeem = convertToShares(withdrawableTotalAssets()),即按流动性价值计算,而非账面价值。而本次被攻击的根本原因在于Ark 将捐赠的、缺乏流动性的份额计入资产。

function totalAssets() public view override returns (uint256 assets) {

uint256 shares = vault.balanceOf(address(this));

if (shares > 0) assets = vault.convertToAssets(shares);

以上代码存在两个缺陷:

1. 捐赠可计入 NAV

FleetCommander 存入/追踪的份额与 Ark 地址中实际持有的份额之间没有任何对账机制。仅仅通过ERC20.transfer 将底层份额转入一个 Ark,就会立即抬高该 Ark 的 totalAssets(),从而抬高 FleetCommander.totalAssets() 及其份额价格。

2. 无视流动性的估值

convertToAssets 报告的是 NAV 市场价值,即使底层金库无法兑现提现(maxWithdraw = 0)。捐赠的价值被全额入账,但实际不可赎回。

FleetCommander.deposit 和 redeem 均可在同一笔交易中调用,且各自获取全新的 NAV 快照。这使得攻击者可以在捐赠前以低价铸造份额,在捐赠后以高价销毁份额。

攻击流程

准备阶段:归集“Varlamore USDC Growth”金库份额代币,这些代币之后会在攻击交易中被捐赠给金库的 Silo Ark,以抬高金库的净值。

交易哈希:0x92d2e2e52d86e580b9dd40af737ed7671665753d96fed5143b4589eaf019dede

攻击阶段:

(1) 攻击者利用Morpho的闪电贷借入65,419,171.87999 USDC 和 1,000,000 USDT

(2) 攻击者将约 6480 万 USDC 存入金库Lazy Vault Lower Risk USDC(LVUSDC),以每股约 1.0665 USDC 的真实价格铸造股份。

(3) 他们通过将估值过高的外部资产(Silo Varlamore USDC Growth 代币)转移到 Silo Ark 中,人为地抬高了净值。

(4) 随后,他们以当时已上涨至约 1.1678 USDC/股的价格赎回了股份,获得约 7100 万 USDC。这笔资金来自金库的实际流动资产(缓冲资产加上流动 Morpho、Spark 和 Sky Arks),也就是其他存款人的资金。攻击结束后,金库大部分流动性被攻击者提取,其中只剩下被捐赠的、无法变现的SiloVault份额。

资金流向分析

攻击得手后,攻击者收到$6.01M DAI。7月8日,约114万DAI被兑换成ETH。其中634.92 ETH被转移至地址0x46e09c4d4d20c0474598b4d2ffdd08bdf416eba7,当日总共600 ETH被转移到Tornado Cash。

7月9日,地址0x46e09继续向Tornado Cash转移100 ETH。目前,约487万DAI仍存放在地址0x7bf716167b48cf527725722c6d79494b45b3bdca。

分析地址0x7bf7此前的资金来源,其ETH资金来源于FixedFloat,随后通过Stargate Finance跨链协议将资金从Arbitrum跨至Ethereum,静默2个月后在7月6日发起了闪电贷攻击。资金流向图如下所示:

结语

这是一次非常复杂的闪电贷攻击,其根本漏洞在于金库在计算资产价值时假设/默认可被捐赠操纵且无视流动性。对于类似的金库代码,项目方需检查每个金库是如何计算资产价值的,它是否会被简单的代币转账/捐赠操纵,是否对缺乏流动性的底层资产进行折价,以及存入和赎回是否可在同一区块内组合。

拓展阅读:

安全审计系列(一) | Solidity语言闪电贷安全风险研究

Web3技术研究 | Solidity闪电贷实现方式与Move以及Rust闪电贷实现方式有何不同?

闪电贷攻击如何防范?Avalanche链上Platypus项目损失850万美元攻击事件分析

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

공유하기:

작성자: Beosin

이 글은 PANews 입주 칼럼니스트의 관점으로, PANews의 입장을 대표하지 않으며 법적 책임을 지지 않습니다.

글 및 관점은 투자 조언을 구성하지 않습니다

이미지 출처: Beosin. 권리 침해가 있을 경우 저자에게 삭제를 요청해 주세요.

PANews 공식 계정을 팔로우하고 함께 상승장과 하락장을 헤쳐나가세요
PANews APP
2026 세계 인공지능 대회가 7월 17일부터 20일까지 상하이에서 개최, 시진핑 주석이 개막식에 참석해 기조 연설
PANews 속보