The Deployer
library contains public functions that allow anyone to deploy new ERC721 and ERC1155 contracts without any access control. This can lead to unauthorized contract deployments, potentially causing significant financial loss due to high gas costs and misuse of deployed contracts.
1.Visibility Issue:
The functions deployERC721Bridgeable
and deployERC1155Bridgeable
are marked as public
in the Deployer
library, allowing them to be called by any external account.
2.Initialization Issue:
The initialization of the contracts uses abi.encode
within abi.encodeWithSelector
, which might not correctly initialize the contracts.
3.Lack of Access Control:
There is no access control mechanism to restrict who can call the deployment functions.
Unrestricted deployments can result in significant gas costs being incurred by the contract owner or the network.
Excessive deployments can lead to network congestion and resource exhaustion.
Unauthorized contracts might be used for malicious purposes, such as phishing or fraudulent activities.
Manual review
Change function visibility to internal
.
Make sure the initialization parameters are sent without abi.encode
inside abi.encodeWithSelector
.
Add access control using onlyOwner
and turn the library into a contract.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.