The owner can choose any _destination and _amount to send funds to with no delay or limit.
These funds could be used to call Booster.deposit() and then Booster.withdraw()(withdraw) the equivalent in lptoken.
Tools Used
Manual Review
Recommended Mitigation Steps
Consider implementing a timelock on VeTokenMinter.withdraw() and changing the destination to an address that owner has no control over.
Example of similar issues illustrating the severity of the finding can be found here (H-09).
Lines of code
https://github.com/code-423n4/2022-05-vetoken/blob/2d7cd1f6780a9bcc8387dea8fecfbd758462c152/contracts/VeTokenMinter.sol#L77
Vulnerability details
Impact
Compromised
owner
canwithdraw()
entire balance ofVeTokenMinter.sol
to any other account.Proof of Concept
https://github.com/code-423n4/2022-05-vetoken/blob/2d7cd1f6780a9bcc8387dea8fecfbd758462c152/contracts/VeTokenMinter.sol#L77-L81
The
owner
can choose any_destination
and_amount
to send funds to with no delay or limit. These funds could be used to callBooster.deposit()
and thenBooster.withdraw()
(withdraw) the equivalent inlptoken
.Tools Used
Manual Review
Recommended Mitigation Steps
Consider implementing a timelock on
VeTokenMinter.withdraw()
and changing thedestination
to an address thatowner
has no control over.Example of similar issues illustrating the severity of the finding can be found here (H-09).