This function only requires that the params.amount is not zero and the value of params.amount was also used to determine to determine the amount of collateral that the protocol would take from users, but this collateral in no way reflects or is connected to the total value of the offer. For example, a user listing 10000000000000 points at 0.01 ether would be required to pay the same amount as a user listing 1000 points at same price. The implication of this is that bad actors might be willing to only release a little collateral which in no way reflects the value of his/her offer.
https://github.com/Cyfrin/2024-08-tadle/blob/main/src/core/PreMarkets.sol#L39C5-L157C6
user and user1 creates different offers of 1000 and 1 billion points but both seperately are charged same collateral.
Manual Review
The best mitigation against this would be to require a minimum collateral value which is based on the total value a user wishes to obtain from the offer placed.
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.