A malicious attacker will list the assets with the _price > amountPerRound
to DoS buyerAgent purchase()
Code:
Currently in the list() functions the lister's can able to list the assets to buyerAgent with anyprice they want. A bad actor will list for the buyerAgent with _price > amountPerRound
. Due to this if this seller`s asset is good or this asset is included in the assets array in BuyerAget.sol::purchase() then the buyerAgent cannot able to purchase NFTs for that particular round because of BuyLimitExceeded.
Attack Scenario:
Alice has buyerAgent contract is now in Sell Phase to accept the listings
Some lister's listed the assets for Alice buyerAgent contract by paying listing fees
Bob will list for Alice buyerAgent contract with _price > amountPerRound
if Bob's assets is included in assets
array in BuyerAgent::purchase() then buyerAgent can't purchase assets as BuyLimitExceeded.
Due to this Geneuine buyerAgents will badly impacted and can't able to buy any asset in that particular round. The lister's in that round who listed for that buyerAgent also impacted due to this as they also spent fee's to list assets and now their assets are no more bought by buyerAgent.
Manual Inspection
Implement necessary checks and designs so that _price should not greater than amountPerRound while listing. Also that price should not impact the buyerAgents to purchase the assets in BuyerAgent::purchase() to avoid BuyLimitExceeded error.
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.