The abortBidTaker
function is designed to allow the offer owner to abort a bid taker under certain conditions. However, the function contains critical vulnerabilities due to missing checks. Specifically, it does not verify the stock type to ensure it is associated with a bid, nor does it check the status of the associated offer. These omissions allow the function to be executed even when the offer is canceled or unrelated to a bid, leading to severe disruptions in the market.
The abortBidTaker
function is intended to be used specifically for aborting a taker position in the context of bids. However, two significant checks are missing from the function:
Stock Type Validation: The function does not verify whether the provided stock address is associated with a bid. Without this check, the function can be called on any stock, regardless of its type, potentially leading to the incorrect application of bid-specific logic.
Offer Status Validation: The function also fails to check the status of the associated offer. This means that even if an offer has been canceled, the function can still be called, leading to the inappropriate execution of the abort logic.
Malicious users could exploit this vulnerability to target specific offers, causing them to be aborted even when they should remain active. This could lead to significant market manipulation, where certain offers are unfairly terminated or manipulated.
If the function is called on canceled offers or non-bid-related stocks, it could lead to premature refunds or the release of collateral. This can result in financial losses for participants who rely on the proper functioning of the bid and offer processes.
Manual Review
Fix the code:
Low severity, the check is indeed missing for `abortBidTaker`, however, this would be contingent on user error and the funds are not locked, given admin can rescue them via `Rescuable.sol`
Leaving high severity for now but will leave open for appeals. Technically, users can choose not to transact this type offers if they are aware of such undercollaterized relisted offers, in which case it will have no impact. However, if subsequent takers transact this relisted offers, this can allow profits without having to settle any points.
Low severity, the check is indeed missing for `abortBidTaker`, however, this would be contingent on user error and the funds are not locked, given admin can rescue them via `Rescuable.sol`
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.