Asymmetry - Mitigation Review Contest

A protocol to help diversify and decentralize liquid staking derivatives.

  • Start date4 May 2023
  • End date8 May 2023
  • Total awards$15,000 USDC
  • Duration4 days

Asymmetry - Mitigation Review contest details

Important note

Each warden must submit a mitigation review for every in-scope High and Medium finding from the parent contest. Incomplete mitigation reviews will not be eligible for awards.

Findings being mitigated

Mitigations of all High and Medium issues will be considered in-scope and listed here.

Overview of changes

Most of the mitigations I feel are self explanatory.

The one exception is H-04, I would like extra attention towards that one because we are assuming 1:1 but are reverting if the CRV pool is depegged. I think there could be a better solution, but it seems that we had many issues that had separate solutions, one being adding a chainlink oracle, which doesn't exist.

Mitigations to be reviewed

URLMitigation ofPurpose
https://github.com/asymmetryfinance/smart-contracts/pull/282/filesH-01Use internal accounting to get the balance
https://github.com/asymmetryfinance/smart-contracts/pull/209/filesH-02Don't get rETH from pool on deposits
https://github.com/asymmetryfinance/smart-contracts/pull/264/filesH-03Enable/Disable Derivatives
https://github.com/asymmetryfinance/smart-contracts/pull/262/filesH-04To protect against oracle attacks we assume FRX is 1:1 with ETH and revert if the oracle says otherwise since there is no chainlink for FRX
https://github.com/asymmetryfinance/smart-contracts/pull/209/filesH-05Using Chainlink to get price instead of poolPrice
https://github.com/asymmetryfinance/smart-contracts/pull/242/filesH-06Using Chainlink to get price instead of assuming 1:1
https://github.com/asymmetryfinance/smart-contracts/pull/258/filesH-07Check if withdraw from deposit contract possible
https://github.com/asymmetryfinance/smart-contracts/pull/209/filesH-08Using Chainlink to get price instead of poolPrice
https://github.com/asymmetryfinance/smart-contracts/pull/276/filesM-01Don't divide before multiply
https://github.com/asymmetryfinance/smart-contracts/pull/264/filesM-02Fixing it by enable/disable derivatives
https://github.com/asymmetryfinance/smart-contracts/pull/228/filesM-04Using swapTo/swapFrom directly from rocketpool
https://github.com/asymmetryfinance/smart-contracts/pull/264/filesM-05Fixing it by enable/disable derivatives
https://github.com/asymmetryfinance/smart-contracts/pull/209/filesM-08Use Chainlink to get rETH
https://github.com/asymmetryfinance/smart-contracts/pull/208/filesM-10Check derivativeCount on stake
https://github.com/asymmetryfinance/smart-contracts/pull/226M-11Use entire balance for rebalance
https://github.com/asymmetryfinance/smart-contracts/pull/252/filesM-12Pass in minAmount

Out of Scope

ReasonIssue
We will be manually holding safETH to prevent this, if not redeployM-03
This is as expectedM-06
Will need a black swan event to happen and will upgrade rebalanceToWeights later to handle thisM-07