The BaseGauge.sol contract includes pausing functionality, typically intended to halt critical operations like staking and withdrawing during emergencies or maintenance. However, the stake and withdraw functions do not include the whenNotPaused modifier.
The whenNotPaused modifier is generally part of a pause mechanism (e.g., from OpenZeppelin's Pausable contract) to restrict sensitive actions during emergencies. Its absence here allows critical operations to proceed when they should be suspended.
If the contract is paused due to a vulnerability or maintenance, malicious actors can still stake or withdraw, potentially exploiting ongoing issues.
Manual Review
Ensure both stake and withdraw functions include the whenNotPaused modifier.
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.