The protocol implements the EMERGENCY_ADMIN and EMERGENCY_ROLE to perform emergency duties. However, the EMERGENCY_ADMIN in BaseGauge is blocked form performing Emergency withdrawal of tokens as required.
In FeeCollector, the following is provided:
As such, this role is able to perform emergency withdrawal of tokesn as stated above:
Now, in BaseGauge, the EMERGENCY_ADMIN is implemented with the following comment:
However, notice that this role is blocked here in emergencyWithdraw():
This function requires the caller to have the DEFAULT_ADMIN_ROLE. It is true that such an admin can manage the EMERGENCY_ADMIN role but this does not mean that another user who has been granted the EMERGENCY_ADMIN will be able to perform this operation.
The EMERGENCY_ADMIN is blocked from performing emergency withdrawal of tokens as required which goes against the administartion model intended by the protocol.
Manual Review
Modify the emergencyWithdraw() to use EMERGENCY_ADMIN:
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.