The royalty fee logic can result in DoS which prevents NFTs to be sold on marketplaces
Proof of Concept
Currently, the RabbitHoleReceipt contract has two flaws within its royalty logic:
1) royaltyFee can be set > 10_000
2) royaltyRecipient can be set to address(0) [known-issue]
Both of these configurational freedoms can result in DoS with marketplace implementations because the desired fee amount cannot be transferred because it is either higher than the initial value or the recipient is 0x0.
Lines of code
https://github.com/rabbitholegg/quest-protocol/blob/8c4c1f71221570b14a0479c216583342bd652d8d/contracts/RabbitHoleReceipt.sol#L90 https://github.com/rabbitholegg/quest-protocol/blob/8c4c1f71221570b14a0479c216583342bd652d8d/contracts/RabbitHoleReceipt.sol#L71
Vulnerability details
Impact
The royalty fee logic can result in DoS which prevents NFTs to be sold on marketplaces
Proof of Concept
Currently, the
RabbitHoleReceipt
contract has two flaws within its royalty logic:1)
royaltyFee
can be set > 10_000 2)royaltyRecipient
can be set to address(0) [known-issue]Both of these configurational freedoms can result in DoS with marketplace implementations because the desired fee amount cannot be transferred because it is either higher than the initial value or the recipient is 0x0.
Tools Used
VSCode
Recommended Mitigation Steps
Consider validating both variables accordingly.