UpliftOnlyExample::afterUpdate do not check if the address _to has over 100 lpNFT token or not, one address can have more than 100 lpNFT token, causing Ddos issues.
In UpliftOnlyExample, to avoid Ddos issues, a single depositor can only deposit 100 times. This is similar to how a user only has a maximum of 100 lpNFT tokens.
Although there was a check when depositing, devs forgot to check when transferring whether the _to address already had a maximum of 100 lpNFT tokens or not.
Place this test into UpliftExample.t.sol.
Then in /2024-12-quantamm/pkg/pool-hooks run forge test --mt test_BobCanHaveMoreThan_100_TokenIds. It passes.
Malicious users can send many small value lpNFTs to a whale user and make this whale unable to withdraw.
Manual review
Foundry
Revert if address to already have 100 deposits.
Likelihood: Medium/High, anyone can receive an unlimited NFT number but will cost creation of LP tokens and sending them. Impact: Low/Medium, DoS the afterUpdate and addLiquidityProportional but will be mitigable on-chain because a lot of those NFT can be burn easily in onAfterRemoveLiquidity.
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.