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