Completed

Liquid Ron Mitigation Review

Deposit RON, get liquid RON, tokens that automate user staking actions and unlocks your liquidity.

  • Start date26 Feb 2025
  • End date3 Mar 2025
  • Total awards$5,000 in USDC
  • Duration5 days

Liquid Ron Mitigation Review

  • Total Prize Pool: $5,000 in USDC
    • Warden awards: $3,750 in USDC
    • Judge awards: $1,000 in USDC
    • Scout awards: $250 in USDC
  • Warden guidelines for C4 mitigation reviews
  • Starts February 26, 2025 20:00 UTC
  • Ends March 3, 2025 20:00 UTC

Important notes

Each warden must submit a mitigation review for every individual item listed in the Scope section below. Incomplete mitigation reviews will not be eligible for awards.

❗️Update: February 28, 2025

A new commit was pushed to the Liquid Ron repo on February 28, 2025 20:03 UTC to add some logging data on a contract -- specifically, tracking the timestamp of delegation action.

C4's team had reviewed the commit and as it did not appear to interact with any existing code, we have made an exception to our code freeze requirement.

Findings being mitigated

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

Mitigations of these additional issues will also be considered in-scope:

Overview of changes

Note that the findings F-17, F-27, and F-18 have all been fixed by omitting the _checkUserCanReceiveRon implementation and replacing it with the capability to specify a different receiver when performing withdrawal requests as well as deposits. These findings are grouped under the reference ID FX-1 in the Scope section below.

Scope

Branch

Mitigation of High & Medium Severity Issues

Mitigation URLMitigation ofPurpose
LinkF-3Add operatorFeeAmount in totalAssets calculations
LinkF-23Bad operator modifer
LinkF-10Add a deposit fee that can be reset every period based on daily expected rewards

Additional scope to be reviewed

These are additional changes that will be in scope.

Mitigation URLReference IDPurpose
LinkFX-1Update flow of withdrawal to add changeable receiver
LinkF-25Replace validator data storage from consensus addresses to IDs which never change
LinkF-2Add start index to start loop on specif validator and length of computation
LinkF-45QA, remove unused mapping
LinkF-32Fix wrong event emission
LinkF-156Clear validator Index when removing it
LinkF-22Remove for loop
LinkF-1Prevent native deposits when paused
LinkS-736: Low-4*Improve getTotalStaked() to prevent recomputing state each call by tracking internally
Link 1, Link 2ADD-01QAs: getValidator func, payable withdraw ron, remove _checkIfPaused, immutable proxy var, check src/dst in proxy, remove dead code, deposit payable has receiver param
LinkADD-02Fix test
LinkADD-03Add forge lib
LinkADD-04Add periodStartVariable for external data tracking

*Note: commit title incorrectly mentions S-726.

Out of Scope

All known issues listed in the preceding audit's repo are considered known issues and out of scope.