You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 3, 2025. It is now read-only.
The bid function lacks validation to ensure that the value sent (msg.value) aligns with the intended sellCouponAmount. This oversight allows malicious users to send zero o while still successfully placing bids, the insertSortedBid function relies on the unvalidated sellCouponAmount, causing the auction's linked list to be manipulated, resulting in invalid or unfair auction outcomes.
root cause
The bid function does not verify whether the Ether sent (msg.value) corresponds to the declared sellCouponAmount. This omission allows bids to be placed without committing the necessary payment.
The insertSortedBid function uses sellCouponAmount to determine the bid's placement in the linked list. Since sellCouponAmount is unvalidated, an attacker can exploit this to skew the bid order.
The contract assumes that all bidders provide valid payments or tokens when, in reality, no checks enforce this assumption.
POC
The attacker submits multiple unpaid bids with artificially inflated sellCouponAmount, pushing out legitimate bids from the auction (_removeBid removes lower-ranked bids).
This allows the attacker to secure a winning position without committing the required payment.
THis pushes legitimate bids further down the order, even if they follow the correct rules. Legitimate bidders may lose their rightful position in the auction.