RAACReleaseOrchestrator::emergencyRevokeoffers a way for EMERGENCY_ROLE to allow users to get their tokens earlier than expected. The function query the beneficiary information, checks if exists, calculates the non-released amount and them delete the beneficiary information.
After deletion, check if the non-released amount is greater than zero. If it is, transfer it emitind a transfer event to communicate the transfer to the beneficiary address.
The problem is that the receiver of the transfer is address(this) not the beneficiary. So, the sender and receiver are the same.
As the beneficiary info is deleted, the tokens cannot be transferred through the normal process and will be locked in the contract.
Code Review
Update the transfer call to send the tokens to the beneficiary.
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.