A user can mint NFTs without adding liquidity to the pool. This enables a griefer attack, allowing the user to mint all NFTs up to the 100-limit without contributing any value to the protocol.
While users are required to add liquidity to mint an NFT, the code does not validate against a 0 amount. This oversight allows users to mint NFTs without contributing any liquidity.
As seen in the code, there is no validation to prevent minting NFTs with a 0 amount. This creates a vulnerability where an attacker can mint all NFTs by simply switching accounts after every 100 mints.
Since transaction costs on Layer 2 networks like Base, Arbitrum, and Optimism are relatively low, this exploit is economically feasible. If exploited, no further liquidity can be added to the weightedPool via the router.
DoS the UpliftRouter: Prevent additional liquidity from being added to the weightedPool.
Damage Reputation: Minted NFTs with zero amount will degrade the credibility and reputation of the weightedPool's NFTs.
Manual Review , Unit Testing
Incorporate a revert statement in the minting logic. This ensures any attempt to mint with a 0 deposit is rejected.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.