Core Contracts

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

Missing Emergency Pause Mechanism Could Prevent Critical Vulnerability Remediation

Description

While the contract implements a whenActive modifier, it lacks a comprehensive emergency pause mechanism that could be crucial in responding to critical vulnerabilities or unexpected issues. This limitation could prevent timely response to security incidents.

Affected code

function buy(uint256 amount) external whenActive {
require(amount <= state.totalRemaining, "Not enough ZENO remaining");
uint256 price = getPrice();
// ... rest of the function
}

Vulnerability details

  1. The whenActive modifier provides basic control but lacks:

    • Emergency pause functionality

    • Graduated pause levels for different functions

    • Clear pause/unpause access controls

    • Events for pause state changes

  2. In case of a critical vulnerability, the team would be unable to quickly pause operations

  3. No mechanism exists to pause specific high-risk functions while keeping others operational

Tools Used

Manual Review

Recommended Mitigation Steps

  1. Implement OpenZeppelin's Pausable contract:

import "@openzeppelin/contracts/security/Pausable.sol";
contract ZENOAuction is Pausable {
function buy(uint256 amount) external whenActive whenNotPaused {
// ... existing function code
}
function pause() external onlyOwner {
_pause();
}
function unpause() external onlyOwner {
_unpause();
}
}
  1. Add events for pause/unpause actions

  2. Implement tiered pause functionality for different severity levels

  3. Add timelock for unpause actions to prevent hasty resumption

Updates

Lead Judging Commences

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

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