The RAACReleaseOrchestrator contract manages the vesting and release of RAAC tokens for various stakeholders. The RAACReleaseOrchestrator::emergencyRevoke function allows the revocation of a vesting schedule before completion. However, it does not properly adjust the RAACReleaseOrchestrator::categoryUsed allocation parameter when a vesting is revoked, leading to an inflated category allocation and potential inconsistencies in token distribution.
1.Vesting Creation:
When a vesting schedule is created via RAACReleaseOrchestrator::createVestingSchedule, the categoryUsed[category] variable is incremented by the vesting amount.
This ensures that the total allocated tokens for a category do not exceed its predefined categoryAllocations.
RAACReleaseOrchestrator::createVestingSchedule:
2.Vesting Revocation:
The RAACReleaseOrchestrator::emergencyRevoke function allows the revocation of a vesting schedule.
When revoked, any unreleased tokens remain in the contract but are not deducted from categoryUsed.
RAACReleaseOrchestrator::emergencyRevoke:
3.Impact of Incorrect Accounting:
Since categoryUsed remains unchanged despite vesting revocation, it results in an inflated recorded allocation for the category.
Future vesting schedules may be blocked under the assumption that the category has already reached its limit, even though some tokens are still in the contract.
Incorrect Token Accounting: The categoryUsed value does not decrease upon revocation, causing a mismatch between actual and recorded allocations.
Denial of Service (DoS) on Vesting Creation: If multiple vestings are revoked mid-way, categoryUsed may falsely indicate full utilization, preventing new vesting schedules from being created.
Inefficient Token Utilization: Unreleased tokens remain stuck in the contract instead of being correctly reallocated or withdrawn.
Manual
Modify the RAACReleaseOrchestrator::emergencyRevoke function to deduct the unreleased amount from categoryUsed[category] when revoking a vesting schedule.
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.