It is particularly dangerous because:
It breaks the fundamental trust model of the marketplace
Allows creation of unauthorized listings without ownership proof
Can be used to manipulate market prices and user behavior
Difficult for users to distinguish legitimate from fake listings
Potential for coordinated attacks to disrupt market operations
Attack Path:
Attacker identifies unregistered asset address
Calls relist()
from address(0)
Passes authorization check due to default values
Creates unauthorized listing
The vulnerability exists because
The authorization check only verifies asset.seller == msg.sender
For a new/non-existent asset listing, asset.seller
will be the zero address
If an attacker calls relist()
with an unregistered asset address, the zero address check will pass if they also use address(0)
as msg.sender
This is dangerous for the protocol because:
The listings
mapping returns a default struct when accessing a non-existent key
For new/unregistered assets, asset.seller
will be address(0)
An attacker could:
Call relist()
with an arbitrary asset address
Pass the seller check if they use address(0)
as msg.sender
Create unauthorized listings for assets they don't own
Potentially manipulating the market with fake listings
The impact is severe as it breaks the core trust assumption that only legitimate asset owners can create listings. This could lead to market manipulation and loss of trust in the protocol's listing mechanism.
A malicious actor could exploit this to:
Create fake listings
Manipulate market prices
Cause confusion for buyers
Potentially interfere with legitimate trades
Unauthorized users could potentially relist assets they don't own
This breaks the core assumption that only asset owners can relist their assets
Root Cause
The listings
mapping returns a default struct for non-existent assets
asset.seller
defaults to address(0)
for new entries
Authorization check can be bypassed using address(0)
as msg.sender
Manual Review
Alternative Pattern
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.