Swan.sol allows assets to be relisted with zero prices and to potentially invalid buyer addresses, compromising the protocol's economic model and asset management system.
Zero-Price Vulnerability:
Allows relisting assets with zero price
Breaks core protocol invariants around value transfer
Enables fee evasion since percentage calculations on zero price equal zero
Can distort market statistics and price discovery mechanisms
Buyer Validation Gap:
Missing validation of buyer address being a legitimate BuyerAgent contract
Could lead to assets being relisted to invalid addresses
Breaks core protocol assumptions about buyer behavior and round management
Potential for permanent asset locking if relisted to non-compliant contract addresses
Particularly dangerous because:
Exists in a core marketplace function
Can be exploited without special permissions (any seller can trigger)
Impact multiple protocol components (fees, rounds, asset management)
Break fundamental protocol invariants around asset pricing and buyer validation
Economic Impact:
Zero-price listings bypass fee calculations
Royalty payments become zero: uint256 buyerFee = (asset.price * asset.royaltyFee) / 100;
Platform fees avoided: uint256 driaFee = (buyerFee * getCurrentMarketParameters().platformFee) / 100;
Manual Review
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.