The emergencyRevoke
function in the RAACReleaseOrchestrator
contract has a critical flaw that can lead to locked assets.
After the tokens for a revoked beneficiary are transferred back to the contract, the categoryUsed
for the corresponding category is not updated. This means that the total used allocation for that category (categoryUsed
) does not reflect the revoked tokens.When attempting to create a new vesting schedule using the createVestingSchedule
function after a revocation, the check if (newCategoryTotal > categoryAllocations[category])
will evaluate to true, as the revoked tokens have not been accounted for in categoryUsed
. This leads to a revert and prevents further management of those tokens.
it can result in assets being permanently locked due to improper state management when revoking vesting schedules.
Manual Code Review
Modify the emergencyRevoke
function to correctly adjust the categoryUsed[category]
value, reflecting the revoked tokens.
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.