in UpliftOnlyExample::addLiquidityProportional() there is a protective check to prevent more than 100 deposits, but there is a way for attacker to deposit dust positions to other users to prevent them using the protocol by first adding liquidity normally and transfer the NFT of the positions to others users, DOSing them from adding liquidity permanently by repeatedly doing it
in UpliftOnlyExample::addLiquidityProportional() there is a check to prevent number of deposits of users to be more than 100 to protect against OOG errors during withdrawals
This check can be weaponized to prevent users from interacting with the protocol, since this array can be filled by attacker by dust LP positions and then transferring the NFT position to the victims weaponizing the afterUpdate hook logic upon transfers
This is a problem since:
There is no minimum LP positions, allowing dust amounts
Any one can transfer his NFT position to any one and be registered in the to array
There is a check to prevent more than 100 positions
The above is small concise description of the attack, this can be combined with:
Frontrunning user deposits by minting 100 dust positions NFT and transferring them to the victim (on public meme Pools chains)
DOS Large profile wallets or known active users using the protocol to not be able to deposit again by repeating the attack
DOS Grieving of users, cause users can remove those positions if the attack is not repeated
Complete DOS of the Hook of the Pool by using malicious MEV
Manual review
make users be able to whitelist people who can transfer to them by tracking them in a mapping of normal user to array of allowed to addresses who can transfer to him
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.
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.