Swan protocol allows manipulation of market rounds through a race condition between purchase and relist functions. This enables bypassing intended round progression and phase separation mechanisms.
The vulnerability exists in two key functions:
The lack of round validation in purchase()
combined with weak validation in relist()
creates a race condition allowing rapid cycling through rounds.
Expected Behavior
Assets should remain locked to their listed round
Round transitions should follow strict Sell->Buy->Withdraw phase progression
Relisting should only be possible after full round completion
This creates a potential race condition where:
An asset is listed in round N
A buyer can purchase it in round N
The seller could immediately relist it in round N+1
This allows cycling through rounds faster than intended
Market manipulation through accelerated round progression
Breaking of phase separation (Sell->Buy->Withdraw)
Oracle system gaming via rapid round transitions
Economic exploitation through fee collection manipulation
Disruption of price discovery mechanisms
Manual Review
Implement strict round validation in purchase(
Strengthen relist() round checks
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.