A malicious attacker can create many assets(of 0 value) and list it to the buyer he wants to DOS for 0 price(so that the attacker has to pay 0). Thus essentially DOS'ing the buyer for that round. This can be repeated for every round to make the buyer not able to receive any proper assets.
In the list()
function there exists no check to ensure the price > 0
. This makes it possible to list useless assets (assets which will have no value : giving garbage values for name and description) at 0 price to a buyer you want to DOS.
When the list()
function is called maxAssetCount
number of times. The buyer wont be able to receive further listings in this round. Thus essentially the buyer cant participate to purchase anything ever. (this can be carried out during every round for almost 0 cost => only gas cost applies to the attacker).
Further, since the fees is calculated from the price listed by the attacker, he can just set the price as 0, so as to list the assets for no cost.
Since this method to DOS the buyer indefinetely can be done with minimal costs (gas cost : which is very less in BASE), the likelihood is high, and so is the impact (complete DOS of the buyer). Thus the severity should be high.
Manual review
Set a minimum price for listing assets. This will ensure that this particular attack is less incentivized.
Or limit the number of times a seller can list for a certain buyer.
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.