31447 - [SC - High] veALCX holders are able to withdraw rewards and...
Submitted on May 19th 2024 at 12:58:15 UTC by @xBentley for Boost | Alchemix
Report ID: #31447
Report type: Smart Contract
Report severity: High
Target: https://github.com/alchemix-finance/alchemix-v2-dao/blob/main/src/RewardsDistributor.sol
Impacts:
Theft of unclaimed yield
Description
Brief/Intro
veALCX holders are able to withdraw rewards even when their token is under cooldown. This is contrary to the docs that clearly state that users should not be able to withdraw rewards as stated here: (https://alchemixfi.medium.com/vealcx-update-272e8900ac5a)
Vulnerability Details
According to the docs, veALCX holders should not be able to withdraw rewards and vote when their token enters into cooldown:
There will be a one-epoch cooldown period between unlocked tokens and being able to claim them to the user’s wallet. The user will have no voting power and will earn no rewards during this cooldown time. Locked tokens can become eligible for unlocks by burning MANA tokens — see the MANA section below.
However, the src/RevenueHandler.sol::claim(https://github.com/alchemix-finance/alchemix-v2-dao/blob/f1007439ad3a32e412468c4c42f62f676822dc1f/src/RevenueHandler.sol#L186) function does not check this fact, allowing users to claim rewards at will.
Impact Details
Users are able to claim rewards when their token in under cooldown contrary to the documentation.
References
https://github.com/alchemix-finance/alchemix-v2-dao/blob/f1007439ad3a32e412468c4c42f62f676822dc1f/src/RevenueHandler.sol#L186
Proof of Concept
Add this test to src/test/RevenueHandler.t.sol for claiming revenue:
Add this test to src/test/AlchemixGovernor.t.sol for voting:
Last updated
Was this helpful?