-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The owner of the auctioned token does not receive the funds after an auction ends #738
Comments
141345 marked the issue as duplicate of #245 |
alex-ppg marked the issue as selected for report |
The Warden specifies that the highest bid of a sale is sent to the contract's owner rather than the token holder. The Sponsor initially declined this claim (#245), however, they appear to have retracted their initial assessment as they have confirmed this submission. I consider the submission valid as the owner of the This submission was judged as the best due to its correct severity categorization, invariant voidance citation, and correct mitigation steps. |
alex-ppg marked the issue as satisfactory |
alex-ppg marked issue #971 as primary and marked this issue as a duplicate of 971 |
Lines of code
https://github.com/code-423n4/2023-10-nextgen/blob/main/smart-contracts/MinterContract.sol#L282
https://github.com/code-423n4/2023-10-nextgen/blob/main/smart-contracts/AuctionDemo.sol#L113
Vulnerability details
Impact
Funds are transfered to a different address than they should.
When an auction ends, the
owner()
of theAuctionDemo
contract receives the funds from the auction, instead of the token owner.This breaks one of the main invarians of the protocol:
Evaluating the severity as Medium, since it breaks a main invariant of the protocol involving assets transfers (regardless of any trusted roles, as the contract performs an action that it shouldn't).
Proof of Concept
Tokens put into auction are first airdropped to a specific
_recipient
address.MinterContract.sol#L282
Then when an auction ends, the earnings are paid to the
AuctionDemo
contractowner()
, which is theowner
of the contract defined by the inherited OpenZeppelinOwnable
contract.AuctionDemo.sol#L113
Tools Used
Manual Review
Recommended Mitigation Steps
Pay the earnings to the corresponding receiver, instead of the contract owner.
Assessed type
ETH-Transfer
The text was updated successfully, but these errors were encountered: