Aave经历惊魂一刻

in HuaRen.News5 years ago

今日,DeFi安全审计公司Trail of Bits披露了Aave借贷协议此前存在的一个严重漏洞,在发现到该问题后,Aave迅速修复了该漏洞,从而避免了一场危机。

12月3日,知名DeFi借贷协议Aave部署了V2版本,尽管并没有被雇佣来查看其代码,但在次日,还是对其进行了简单审查。很快,就发现了一个影响Aave V1和V2版本合约的漏洞,并报告了该问题。在将的分析发送给Aave的一小时内,他们的团队修复了该漏洞,以减轻潜在影响。如果该漏洞被利用,这一问题将破坏Aave,并影响外部DeFi合约中的资金。

据悉,有5家不同的安全公司审查了Aave代码库,其中有一些使用了形式化验证。然而,这个漏洞并没有被这些公司注意到。这篇文章描述了这一问题,以及“该漏洞是如何逃过检测”等其它的一些经验教训。此外,也在开发一种新的Slither检测器,它可以识别这一漏洞,从而为以太坊社区提高安全性。

Aave使用了delegatecall代理模式,简单来看,每个组件被分成了两个合约:(1)包含实现的逻辑合约,(2)包含数据并使用delegatecall与逻辑合约进行交互的代理。在逻辑合约上执行代码时,用户与代理合约进行交互。

在Aave中,LendingPool(LendingPool.sol)是使用delegatecall代理的可升级组件。

而发现的漏洞依赖于这些合约中的两个功能:

可以直接调用逻辑合约的函数,包括初始化函数;

借贷池具有其自己的delegatecall功能;

初始化可升级合约这种可升级模式的一个限制是,代理不能依赖逻辑合约的构造函数(Constructor)进行初始化。因此,状态变量和初始设置必须在公共初始化函数中执行。

虽然它通过代理,预期可正常工作,但是也允许任何人直接在逻辑合约上调用initialize函数。一旦逻辑合约被部署,任何人都可以在LendingPool逻辑合约中设置_addressesProvider。

就问题本身而言,已经是很严重了,因为任何人都可以破坏逻辑合约,并阻止代理执行借贷池代码。

然而,在代理合约中使用OpenZeppelin会加剧这一问题的严重性。

在2018年撰写的一篇博客文章中强调,没有代码的合约委托调用(delegatecall)能在不执行任何代码的情况下返回成功。尽管最初发出警告,但OpenZeppelin并未在其代理合约中修复回退函数:

如果代理委托调用(delegatecall)了一个已破坏的借贷池逻辑合约,则代理将返回成功,而不会执行任何代码。

由于Aave可以更新代理以指向另一个逻辑合约,因此这种漏洞利用不会持久。但在可利用此漏洞的时间范围内,任何调用该借贷池的第三方合约,都将表现为某些代码已被执行,但实际却并未执行。这将打破很多外部合约的基本逻辑。

所有AToken(Aave代币):AToken.redeem调用pool.redeemUnderlying(AToken.sol#L255-L260)。由于调用什么也不做,用户将烧掉他们的AToken,而不会收到他们的底层资产;

WETHGateway(WETHGateway.sol#L103-L111):存款会存储在网关中,然后任何人都可以窃取存款资产;

任何基于Aave信用委托v2(MyV2)的代码库(MyV2CreditDelegation.sol);

如果发现的问题被利用,则Aave之外的很多合约都会受到各种方式的影响。确定一份完整的名单是困难的,没有试图这样做。这一事件凸显了DeFi可组合性的潜在风险。

本帖 steem 首发

Aave经历惊魂一刻

最近新帖

  1. COVER 9天上涨695%
  2. 平台非法运行谁负责
  3. 呼叫河马进行挖矿?
  4. CEX正在努力引导人们转向比特币
  5. Ferrari开放网络下的治理引流
  6. Polkadot 上的比特币PolkaBTC
  7. defi保险爆发原因及发展趋势
  8. Alpha Homora的2B交易量挖矿
  9. 外星人和美国政府签了协议
  10. AC找到第一个大甲方Chainlink
  11. NFT抽奖游戏
  12. 机构投资defi的安全顾虑
  13. 数字技术创新引领的生活模式
  14. Inclusive Pool 信用贷的“信用”设计
  15. 稳定币的应用主要在DEFI
  16. libra改名规避监管
  17. DeFi的指数投资
  18. CrescoFin提供DeFi股票代币
  19. Gas代币CHI和GST-2
  20. DeFi风险随着创新的复合而增加
  21. DeFi极简史
  22. 闪电贷和闪电铸策略
  23. DEFI和传统金融融合
  24. CellETF引领DeFi新时代
  25. 流动性挖矿的困境
  26. GES减产ECC改制度
  27. 实践数字经济发展数字产业
  28. DeFi依然存在可扩展性和互操作性
  29. DeFi大浪淘沙
  30. ETH2.0时代挽救DeFi
  31. DeFi为加密市场带来了什么?
  32. 央行数字货币研究所与拉卡拉等合作
  33. Defi需要改善
  34. 以太坊2.0会给矿工带来的红利
  35. 以太坊2.0能否解决性能问题
  36. 人才共享平台Keep3r能否延续YFI
  37. 新当铺DeFi改造旧金融
  38. DeFi迎来全面的爆发
  39. defi交易所?
  40. DeFi老将休整,新兵接力
  41. Filecoin和DeFi的交集
  42. gas改进方案
Sort:  

This post was resteemed by @steemvote and received a 17.83% Upvote. Send 0.5 SBD or STEEM to @steemvote

本帖中 , @hnt 作为受益人获得奖励 : 4.331 $ + 0.0 STEEM + 26.908 SP = 50.705 STEEM = 9.228 $ , 因此 @hnt 保留 5%(2.535 STEEM) 作为费用 , 并且支付本帖作者 48.17 STEEM . 谢谢使用 @hnt 的流动性服务 !
详细说明 ...

Coin Marketplace

STEEM 0.13
TRX 0.33
JST 0.034
BTC 110163.42
ETH 4272.25
USDT 1.00
SBD 0.83