The GaugeController::toggleGaugeStatus()
function allows gauge admins to reactivate gauges that were emergency shutdown by the emergency admin, undermining the emergency control system.
The GaugeController::emergencyShutdown()
function allows emergency admins to deactivate gauges in critical situations by setting gauges[gauge].isActive = false
. However, gauge admins can simply call GaugeController::toggleGaugeStatus()
to reactivate these gauges since this function just toggles the isActive
boolean without any checks for emergency shutdown status.
This creates a conflict between emergency and gauge admin privileges, where gauge admins can override emergency controls meant to protect the protocol in critical situations.
This undermines emergency controls that are critical for protocol safety
Emergency admin actions can be reversed by gauge admins with lower privileges
Could lead to continued emissions/rewards to compromised or vulnerable gauges
No permanent damage but weakens protocol safety mechanisms
Manual review
Add the following test case to the test/unit/core/governance/gauges/GaugeController.test.js
file:
Add a check in toggleGaugeStatus
to prevent reactivation of emergency shutdown gauges:
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.