Hawk High

First Flight #39
Beginner FriendlySolidity
100 EXP
View results
Submission Details
Impact: high
Likelihood: medium
Invalid

[H-6] Uninitialized principal Address at LevelTwo contract

Description:

The principal address is never initialized or assigned in the contract. In an upgradeable pattern, failing to initialize such privileged roles opens the door to misconfiguration or exploitation (e.g., leaving the role unset or defaulted to address(0)).

Impact:

If principal is used in access control checks, the logic may be broken or anyone could exploit unset roles depending on implementation elsewhere.

Tools Used

Manual review
Chatgpt

Recommendations

Implement an initialize() function that sets the principal and usdc addresses. Ensure the function includes initializer modifier to prevent re-initialization:

function initialize(address _principal, address _usdc) external initializer {
require(_principal != address(0), "Invalid principal");
principal = _principal;
usdc = IERC20(_usdc);
}
Updates

Lead Judging Commences

yeahchibyke Lead Judge 6 months ago
Submission Judgement Published
Invalidated
Reason: Lack of quality

Support

FAQs

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