When tokens are deposited into Treasury the _balances state variable in increased based on amount parameter. If the real amount transfered to the contract changes it can't be withdrawn which leads to loss of funds.
If we look at the deposit function is adds amount to _balances state variable.
If the manager wants to withdraw the tokens he must call withdraw. Manager can only withdraw the amount of tokens stored in _balances state variable. The issue is that some tokens rebase their balanceOf over time. It means that the balance can change from 100 to 110 but the manager can only withdraw original 100 tokens. Rest of the tokens is forever stuck in the contract leading to loss of funds.
Rebase tokens will be forever stuck in the contract if balanceOf increases overtime.
Manual Review, Hardhat
Change Treasury contract so that manager can withdraw balanceOf of the specified token.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.