Files
nexus/wiki/entities/Euler-Finance.md
weishen 55d3745bb0 ingest: Blockchain Security Auditor + 4 entities + 2 concepts
- Source: blockchain-security-auditor.md (The Agency Specialized, smart contract security audit agent)
- Entities: The-DAO-2016, Euler-Finance, Nomad-Bridge, Curve-Finance
- Concepts: Reentrancy, Oracle-Manipulation
- Updated: index.md (消除了source missing标记), overview.md, log.md
2026-04-25 10:52:41 +08:00

2.3 KiB
Raw Blame History

title, type, tags, sources, last_updated
title type tags sources last_updated
Euler Finance entity
blockchain
defi
exploit
lending
eoa-donation
blockchain-security-auditor
2026-04-25

基本信息

  • 时间2023 年 3 月 13 日
  • 平台Ethereum
  • 损失1.97 亿美元Euler Finance 无辜用户存款几乎全损)
  • 根本原因donate-to-reserves 操纵攻击Euler 白帽事后命名)
  • 攻击者:关联 Lazarus Group朝鲜黑客组织
  • 白帽救援:攻击者后归还全部资金(通过协商)

攻击原理

Euler Finance 的 donateToReserves() 函数允许任意用户将自己的 ETH 转入储备池。当攻击者先存款、后捐赠、后借款时其健康因子health factoreToken.balanceOf() 更新前被错误计算,导致超额借款:

  1. 攻击者存入 30 ETH获得 30 eETH
  2. 攻击者调用 donateToReserves(30 ETH),将 30 eETH 转入储备
  3. 此时攻击者的真实余额3000 ETH远高于名义余额0但清算逻辑基于名义余额
  4. 攻击者以极低抵押率10 倍杠杆)借入 10 倍存款规模的资产
  5. 抵押品价值下跌时,清算机器人按错误健康因子执行清算,攻击者获超额清算收益

关键漏洞:donateToReserves() 的实现没有考虑对内部 accounting 的影响,健康因子计算依赖于可被操纵的 eToken.balanceOf() 而非内部余额追踪。

关键教训

  • 不要相信任何"管理员"函数是安全的:看似无害的 donateToReserves() 影响了整个清算引擎
  • 协议不变量必须考虑所有代码路径:包括看似无害的辅助函数
  • 白帽救援:最终攻击者归还资金(否则 1.97 亿无法追回),成为 DeFi 历史上最大白帽救援案例

关联漏洞类型

  • Flash-Loan-Attack — 攻击使用闪电贷提供初始资金
  • Oracle-Manipulation — 健康因子计算依赖可操纵的内部状态
  • 经济攻击Economic Exploit利用 DeFi 协议的会计逻辑错误

关联页面

  • blockchain-security-auditor — 区块链安全审计 Agent将 Euler Finance 作为关键记忆模式收录于 Exploit Pattern Library
  • The-DAO-2016 — 同为 DeFi 安全史上的里程碑事件,但攻击类型不同
  • Curve-Finance — 2023 年另一大 DeFi 安全事件