NFTBridge
60,000 USDC
View results
Submission Details
Severity: low
Invalid

Using `Ownable` instead of `OwnableUpgradable` for Upgradable contracts

Vulnerability Details

When dealing with upgradable contracts, it is better to make the Access Control and Privilege Roles in a separate storage location ruther than with normal variables (making it in a slot far away from slots 0, 1, 2, 3, ...), this is to prevent any problem when upgrading the contract like storage collision that may lead to renouncing the ownership and losing the access control for the contract.

The current contracts which Bridge contract inherits from them implement OpenZeppelin Ownable not OwnableUpgradable.

UUPSProxied.sol#L14

contract UUPSOwnableProxied is Ownable, UUPSUpgradeable {

State.sol#L13

contract StarklaneState is Ownable {

Recommendations

Use OpenZeppelin OwnableUpgradable instead of Ownable.

Updates

Lead Judging Commences

n0kto Lead Judge 9 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Informational / Gas

Please, do not suppose impacts, think about the real impact of the bug and check the CodeHawks documentation to confirm: https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity A PoC always helps to understand the real impact possible.

Support

FAQs

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