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

_disableInitializers is missing in Bridge’s constructor

Summary

disableinitializers is not called in Starklane’s constructor

Vulnerability Details

An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. But in the case of the implementation contract, a disableinitializers() is necessary to be called in the constructor. This is because when the Bridge contract is deployed and initialized, the initialize method on the newly created proxy's implementation contract is never called. As such, anyone can call that method and pass in whatever values they want as arguments.

Impact

An attacker can call Bridge::initialize and pass arbitrary arguments

Tools Used

Manual Review

Recommendations

Add the following constructor:

constructor() {
_disableInitializers();
}
Updates

Lead Judging Commences

n0kto Lead Judge about 1 year ago
Submission Judgement Published
Validated
Assigned finding tags:

finding-initialize-on-implementation

Likelyhood: Low/Medium Impact: Very low, the attacker can at most run the protocol on their side and lead a phishing campaign with an address deployed by Ark.

Support

FAQs

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