Vesting.sol#vest()
Anyone can make other users' vestings revokable
#220
Labels
2 (Med Risk)
Assets not at direct risk, but function/availability of the protocol could be impacted or leak value
bug
Something isn't working
duplicate
This issue or pull request already exists
Handle
WatchPug
Vulnerability details
vest()
can be called by anyone with an arbitrary_beneficiary
address to add aTimelock
(vesting) to the_beneficiary
.At L83-88, it changes the global storage of
revokable
settings for the_beneficiary
.This allows anyone to change the
revokable
settings for other users. Non-revocable vestings can later be changed into revokable, and then be revoked, causing the user to lose funds.https://github.com/code-423n4/2021-11-bootfinance/blob/7c457b2b5ba6b2c887dafdf7428fd577e405d652/vesting/contracts/Vesting.sol#L73-L98
Recommendation
Consider making the
revokable
settings set perTimelock
instead of per address.The text was updated successfully, but these errors were encountered: