Core Contracts

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

Inadequate Role Separation in Contract Constructors

Summary

Multiple contracts—including FeeCollector, Treasury, BoostController, GaugeController, TimelockController, RAACMinter, and RAACReleaseOrchestrator—assign all critical roles (e.g., DEFAULT_ADMIN_ROLE, MANAGER_ROLE, ALLOCATOR_ROLE) to a single address during construction. This centralization of administrative control can be dangerous, as it concentrates power and creates a single point of failure

Vulnerability Details

Contracts:

FeeCollector, Treasury, BoostController, GaugeController, TimelockController, RAACMinter, and RAACReleaseOrchestrator

Code:

_grantRole(DEFAULT_ADMIN_ROLE, admin);
_grantRole(MANAGER_ROLE, admin);
_grantRole(ALLOCATOR_ROLE, admin);

This approach assigns all responsibilities to one admin address (typically msg.sender), without separation of duties. If the admin account is compromised or mismanaged, it could potentially affect all contracts controlled by these roles.

Impact

Centralized Control: A single address managing all roles can lead to a centralization risk, as the compromise of this account would affect multiple critical functions.

Single Point of Failure: Concentrating authority in one account increases the potential impact of human error or targeted attacks.

Tools Used

Manual

Recommendations

Separate Role Assignments: Consider assigning different roles to different addresses to decentralize control and reduce risks associated with a single point of failure.

Updates

Lead Judging Commences

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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

Give us feedback!