Submitted by cccz, also found by 0x52
In the AlgebraPool contract, when the user provides liquidity via the mint function, the lastLiquidityAddTimestamp is updated to the current time.
Later when the user removes the liquidity via burn function, the transaction will revert if the current time is less than lastLiquidityAddTimestamp + _liquidityCooldown.
liquidityCooldown is max 1 day.
However, in the mint function, users can provide liquidity on behalf of other users, which also means that malicious users can keep other users on liquidity cooldown forever by providing a little bit of liquidity on behalf of other users, thus preventing other users from removing liquidity.
AlgebraPool.sol#L226-L231
AlgebraPool.sol#L513-L523
Consider allowing users to provide liquidity only for themselves, or setting liquidityCooldown to 0.
vladyan18 (QuickSwap & StellaSwap) confirmed
sameepsi (QuickSwap & StellaSwap) disagreed with severity and commented:
0xean (judge) commented:
