The LiquidationPool::distributeAssets() allows users to automatically buy liquidated assets at a discounted price. In the case the the cost of the asset exceeds the user EUROs staked balance, the function will adjust the price and the amount of assets assigned to the user. However because of how soldity handles rounding the user might be deducted EUROs without getting any assets in return
If the (costInEuros > _position.EUROs holds true, _portion is recalculated, however, if the product of _portion * _position.EUROs is < costInEuros _position will be equal to 0.
The user EUROs will be deducted from his balance without receiving any rewards in return.
Manual review
To mitigate this issue it is recommend to add a check ensuring that if the _portion == 0 then no EUROs are deducted from the staker's balance.
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.