Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: medium
Valid

Gauge staking and withdrawal cannot be paused

Summary

Gauge staking and withdrawal cannot be paused.

Vulnerability Details

As per BaseGauge.md, emergency pause should stops all operations.

  • Emergency pause stops all operations

However, whenNotPaused modifier is not applied to stake() or withdraw(), this means user can still stake/withdraw even when the contract is in emergency pause state.

BaseGauge::stake()

function stake(uint256 amount) external nonReentrant updateReward(msg.sender) {

BaseGauge::withdraw()

function withdraw(uint256 amount) external nonReentrant updateReward(msg.sender) {

Impact

Gauge staking and withdraw cannot be paused.

Tools Used

Manual Review

Recommendations

Add whenNotPause modifier to stake() and withdraw().

Updates

Lead Judging Commences

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Validated
Assigned finding tags:

BaseGauge::withdraw, stake, and checkpoint functions lack whenNotPaused modifier, allowing critical state changes even during emergency pause

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Validated
Assigned finding tags:

BaseGauge::withdraw, stake, and checkpoint functions lack whenNotPaused modifier, allowing critical state changes even during emergency pause

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!