Malicious seller can prevent honest buyerAgent purchasing the NFT he needs by listing many useless NFTs with a price == 0 until assetsPerBuyerRound reaches maximum value and another seller can’t list on that honest buyerAgent
Schema :
Honest owner of buyerAgent deploy buyerAgent with description :
backstory : “Dr.EscalateForMyMoney during developments in brain surgery”
objective : “to become number 1 brain surgery Doctor”
Malicious seller monitor the buyerAgent deployment contract and find out the address and detailed description (backstory, objective) of the buyerAgent
Malicious seller listing NFT with description “tractor” (or any unrelevant description) and keep listing until honest buyerAgent reaches maximum value of assetsPerBuyerRound
In that way, the honest buyerAgent never get the NFT he want
This attack can be repeated for every round
create any test file and rename it —> copy this code —> run yarn test ‘path/test.test.ts’
For protocol :
Loss protocol selling fee because NFT price = 0 and give free NFT to honest buyAgent if he kept buying those NFT
For honest buyerAgent :
it is true that he received a lot of NFTs if he kept buying them (price = 0), but he did not get the NFTs he needed and he need paying purchase fee (protocol fee, generator fee, and validator fee)
For Malicious seller :
No risk, because this attack can be executed freely with no capital and can repeat any round for any buyerAgent
Manual Review
Consider limit each seller when listing NFT assets, (i.eseller can list max 5 NFT per round)
Consider adding a check for NFT price ≠ 0
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.