The function createVestingSchedule()
does not validate that startTime
should be >= block.timestamp
. This could allow an authorized orchestrator to set a vesting schedule with a startTime
in the past. Since the _calculateReleasableAmount()
function checks the elapsed time from startTime
, this could result in immediate vesting of a large portion of tokens.
Code Reference:
createVestingSchedule()
does not validate startTime
:
Potential Exploit Scenario:
The orchestrator creates a vesting schedule with startTime
set 700+ days in the past.
The release()
function is called, and _calculateReleasableAmount()
allows full token release immediately.
The orchestrator drains the vesting allocation without the expected gradual vesting.
Add a validation check to ensure startTime
is not in the past:
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.