Aave v2/v3 security incident 04/11/2023

@snowfox2012 whenever a pool is paused, no action is enabled, for a matter of protection. Given the decentralized Aave governance, the 6 days are a limitation that simply can’t be skipped, as they are on-chain configurations.

The rationale for the pausing is simply that, after evaluating potential attack vectors, it is the only mechanism that gives 100% assurance.

Following the previous communication, we have created a governance proposal to upgrade the stable debt tokens, which will allow for the unpause of all the affected pools.

Voting will start in ~24h

https://app.aave.com/governance/proposal/?proposalId=359

1 Like

The current borrow interest rate on EURS on polygon is 122.9%. I fully understand to protect from the vulnerability that positions had to be frozen. I don’t understand why interest rates were not also frozen, right now people are stuck with these absolutely exorbitant borrow rates. They should have at least been capped right?

2 Likes

there is no built in mechanism to freeze interest rates. It’s 6 days and everything will be restored, understand that this was an emergency situation and everything that could be humanly possible to restore normal operation asap has been done.

4 Likes

Are the pools still perfectly safe or has something changed? I mean first frozen now paused…

Aave v2/v3 Security Incident Risk Analysis

Summary

On 2023-11-04, v2 Ethereum was paused and certain assets on V3 Polygon, Arbitrum, Optimism were frozen in order to protect the protocol from a vulnerability. As a result, positions may become at risk for accruing bad debt, given that liquidations / debt repayment / collateral refill have been paused.

The situation presents a number of uncertainties with regards to the amount of time v2 will be paused and spikes in volatility and breakdown in asset correlations. Gauntlet computes potential insolvencies under the following scenarios. We include 2 week to unpause scenarios to be prudent in light of other potential delays, and for greater color on how potential insolvency and liquidations may evolve during a pause.

  • Time to unpause v2 is 1 week, volatility is 1x historical 1-year volatility.
  • Time to unpause v2 is 2 weeks, volatility is 1x historical 1-year volatility.
  • Time to unpause v2 is 1 week, volatility is 2x historical 1-year volatility
  • Time to unpause v2 is 2 weeks, volatility is 2x historical 1-year volatility

For each scenario, we run 1000 simulations, in each simulation we generate 15-minute returns, extend over 1 or 2 weeks, and compute distribution of insolvencies. The simulations assume -

  • (no stablecoin depeg) stablecoins (USDC/USDT/DAI/etc) do not change in price
  • (no LST depeg) STETH and WETH price returns mirror each other

We first discuss simulation results, and then touch on our view on the grace period that BGD mentioned previously.

Aave v2 Simulation Results

At a high level, most potential insolvency that may arise could come from borrows against stablecoin collateral, and most potential liquidations may arise out of decorrelation between WETH and WBTC.

Insolvencies_95 and liquidatable_amt_95 represent insolvencies and liquidatable borrows at the 95th percentile out of 1000 simulations. We find that at the 95th percentile, supposing volatility were what was observed in the past year, potentially $5k may become bad debt. Note that Aave has sizable reserves and treasury funds

days_to_unpause volatility_multiplier insolvencies_95 liquidatable_amt_95
7 1 5k 32m
7 2 180k 35m
14 1 240k 35m
14 2 700k 37m

Analysis of higher insolvencies under more pause delay and higher volatility reveals most insolvencies come from stablecoin collateralized CRV borrows. Some simulations model CRV prices increasing, so towards the tail end those CRV borrows may become insolvent.

Should we exclude the CRV borrows -

days_to_unpause volatility_multiplier insolvencies_95 liquidatable_amt_95
7 1 5k 32m
7 2 12K 35m
14 1 12k 35m
14 2 50k 37m

The largest contributors to liquidations at risk come from WBTC borrows. This account becomes eligible for liquidation with a 4% downwards move in WETH/WBTC ratio, and has frequently topped up positions in the past month.

Aave v3 Simulation Results

On v3 Arbitrum, Polygon, Optimism, and Avalanche, USDT, USDC, DAI, EURS have been paused. Both nonstable-collateralized stable debt, as well as stable-collateralized nonstable debt may be at risk, should market move significantly in either direction.

Assuming stablecoins will become unpaused in 1 week, simulating a 2-std move down and up reveals larger potential liquidation volume with a downwards move. At this 95th percentile, insolvency risk remains small.

chain direction new_insolvencies new_borrows_liquidatable
arbitrum down 0 860k
arbitrum up 0 360k
avalanche down 0 1.6m
avalanche up 600 240k
optimism down 0 41k
optimism up 0 14k
polygon down 0 600k
polygon up 900 560k

Conditions for grace period

Determining the viability of the grace period to allow users to repay debt / top up collateral involves tradeoffs between user experience and potential insolvency that may occur during the grace period. Our simulations reveal that under current loanbook, conditions, and governance procedure, adding a 3-hour grace period for users to readjust positions does not add excess risk.

However, for thoroughness, we outline a couple characteristics that can affect the viability of the grace period. We then define two conditions in which we would recommend disabling the grace period.

Characteristics

  • (Buffer to insolvency) Let B be the set of borrows that will become insolvent with a 5-std 3-hour move. If sum(B) > K, where K is some insolvency tolerance, then reconsider grace period.

    • If an excess number of liquidatable positions have an increased chance of evolving into bad debt, liquidating them, rather than having a grace period, may improve risk.
    • As an example, our simulations show that on the weekly time frame, an additional pause of 1 week increases 99th percentile insolvency by ~$250k (excluding large CRV borrows, see above simulation results).
  • (Increased volatility) Rolling market volatility on 15 minute period leading up to grace period is above n*observed_volatility, where n is a volatility multiplier, then reconsider grace period.

    • Increased volatility leading up to grace period may be sticky and induce higher volatility during the grace period, which may affect position buffer to insolvency.

Based on the above characteristics, should either of the following two conditions be met, we recommend disabling the grace period, if the community finds the parameterization acceptable.

Condition A

  • (Aave v2) Buffer to insolvency, K = $250k, 5-std 3 hour move
  • (Aave v3) Buffer to insolvency, K = $25k, 5-std 3 hour move

Condition B

  • (Aave v2) Buffer to insolvency, K = $250k, 2-std 3 hour move
  • (Aave v3) Buffer to insolvency, K = $25k, 2-std 3 hour move
  • (both) Increased volatility, rolling market volatility > 3 * observed volatility.
    • As an example, WETH observed volatility over the past year has been ~45%. Should WETH rolling market volatility over the past half-day be > 135%, coupled with lower buffer to insolvency, this may signal need to deactivate the grace period.
    • This would have been breached ~ 7 times in the past year.

We pick $250k for the threshold K for Aave v2 as it represents the additional insolvency risk at the 99th percentile incurred over an additional delay of 1 week, ex ante. Risk exceeding this level at activation of grace period may indicate deteriorated market conditions, in which benefits of liquidation may outweigh impacts to users. We proportionately scale down the threshold for Aave v3 deployments based on TVL.

Price, Rolling standard deviation over half-day, WETH

Next Steps regarding Market Risk

  • As mentioned, should either of the above two Conditions be met, we recommend disabling the grace period, if the community finds the parameterization acceptable.
  • Welcome community feedback.
6 Likes

They are fine, the additional pause is out of abundance of caution

1 Like

I believe you mean the bridged versions of those assets, and not the native ones – e.g. USDC native on Arbitrum is not and will not be paused, correct? If there is potential to freeze the native assets too, will there be any advance notice?

Since the native USDC does not have a stable borrow APY, it will not be paused.

2 Likes

Hey, I just checked my AAVE account and there is big funds missing from my deposited funds (about 0.028 BTC and 0.01 ETH).

There was no liquidation as my borrowed funds (USDC, DAI) are still the same amount. My health factor is 0.99 now and I can’t repay debts or anything.

What the hell is happening and please can somebody help me? This looks like a nightmare.

I am using AAVE on Polygon and borrowed stablecoins (USDC, DAI) for my deposited funds (WBTC and WETH).

I can see the transactions in Polygonscan (“Token Transfers ERC20”).

For example this is the TX Hash for my gone 0.028 WBTC:

Please tell me that this will be fixed and I am not losing a big amount of my crypto savings because of a bug bounty program?

1 Like

@PolyMika this can’t be related to the actions taken by Guardian. It seems you have been a victim of approval by mistake to a malicious entity.
You should remove your approvals with a tool like https://revoke.cash/ as soon as possible

1 Like

Following the plan, we have created an additional governance proposal for the activation of the new Liquidations Grace Sentinel for Aave v2 Ethereum/Polygon/Avalanche.

Additionally, we have added a follow-up to proposal 359 created yesterday, doing the same upgrade of stable debt implementations to extra assets on v2 Ethereum and v3 Polygon.

Voting will start in ~24 hours, participate
https://app.aave.com/governance/proposal/?proposalId=361

1 Like

@bgdlabs According to Revoke Cash there is nothing wrong with my Wallet.

And there was no direct Crypto withdrawal from my AAVE account to my wallet address and then no direct withdrawal from my wallet to a spammers adress.

The money went straight from my AAVE account to this adress and nothing inbetween:

How is this even possible?

It seems like your keys got compromised. Either by using some malicious software or you entered your private key somewhere. It is definitely not related to Aave.
If you don’t have the keys to this wallet it seems like you won’t be able to get those funds back unfortunately.

@EzR3aL

No, I did not put my keys online somewhere and also did not install any software.

And even if I did, the hacker would have to withdraw my deposited funds from Aave to my wallet first?!

But this did not happen. Looking at my transactions, this seems to have happened inside the AAVE ecosystem.

The underlying aToken has been transferred. So no need to withdraw first. This person didn’t withdraw your BTC but aWBTC. @PolyMika

@EzR3aL Ok this makes somehow sense to me. Still baffles me how this could have happenend and now I cant even save the rest of my money as all my borrowed funds are freezed.

As a fork of Aave V3 building on the zkSync chain I have to say, the professionalism and responsibility conducted by the @bgdlabs team is beyond par and we are grateful to the communication and action taken.

It should note that the @bgdlabs proactively reached out to the various forks including ZeroLend informing them about the white-hat issue and informing about measures needed to safe guard our markets.

Something I don’t think we’ll find with any other major DeFi protocol out there. We hope to give something back to the Aave community and if there’s any support we can offer to the Aave fam, we’ll be happy to do so.

Good luck everyone for the vote :rocket:

7 Likes

Hi! I am sorry to inform you, you are probably a victim, of one of the most common scam on the crypto. ( In fact, u probably SIGN, or made a simple small transaction one day with this account, not even specifically on AAVE, or u went from a BAD phishing website.
Unfortunatly, somehow the actual SIGNATURE or transaction that allowed the counterfeiter to USE your address, and DRAINED your account so far, there is 2 distinct transactions.

1 - the one that is probably you or the attacker that initiate it:

this transaction happened on block [49630533] (Polygon PoS Chain Blocks #49630533 | PolygonScan)

2 - the transaction that the ATTACKER or one of the entity that has SIGN, or allowed the account.

this transaction happened on block 49630823 interacting like 10 mins later !

correct me community!

Actually the GUARDIAN IS a good thing for you, because YOU NEED TO REVOKE ACCESS from your account BEFORE your are making your funds available somehow.
The guardian freezing ur asset, actually make it hard for the attacker to drain your account, because he was to deposit to same amount (or more!) of collateral to get out with ur money. PLEASE revoke quickly your access!

When does the Freeze last until? When I check at this link: Aave - Open Source Liquidity Protocol the freeze should already be over but Borrowed stablecoins are still frozen and at exorbitant rates! USDC on Optimism since the freeze has a borrowing rate of 23%! Funds are safe but debt is growing out of control. When will this stabilise? Will AAVE users be receiving any incentive to keep their funds with AAVE after this incident?

1 Like