The withdraw
function allows a manager (role-based access via MANAGER_ROLE
) to withdraw funds from the contract to a specified recipient. However, it does not verify whether the recipient has an allocation, nor does it check if the withdrawn amount is within the allocated limit. This could allow managers to withdraw funds arbitrarily, bypassing any allocation logic.
The function does not check whether the recipient has an allocation, allowing managers to withdraw any amount to any address without validation.
Since the function does not reference _allocations
, managers can withdraw funds even if the recipient has not been allocated any amount.
There is also no guarantee that withdrawals align with intended fund distributions.
Managers can withdraw funds without regard to allocations, leading to potential misappropriation.
Manual Review
Enforce Allocation Checks in the Withdrawal Process
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.