Swan protocol allows asset listings with unbounded prices, including max_uint256
, leading to arithmetic overflows in fee calculations and potential economic manipulation.
Impact Path:
User calls list()
with max_uint256
price
Creates listing in listings
mapping
Triggers transferRoyalties()
Affects fee calculations and token transfers
Economic Manipulation:
Malicious actors can list assets with extreme prices
This distorts the market dynamics and price discovery
Could be used to manipulate statistics or block other legitimate listings
Fee Calculation Issues:
Extreme prices lead to overflow in royalty calculations
Platform fees and buyer fees become unreliable
Could result in incorrect token transfers
Token Transfer Problems:
Extremely high prices may exceed token balances
Can cause failed transactions and waste gas
Potential DoS vector for legitimate market operations
The combination of these issues makes the protocol vulnerable to economic attacks and manipulation. The ability to list with arbitrary prices, including max_uint256
, fundamentally undermines the economic security assumptions of the system.
Manual Review
Implement price validation in a modifier
Add slippage protection for buyers
Include price reasonability checks based on market parameters
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.