PreMarkets.listOffer()
doesn't update the abortOfferStatus
of originOfferInfo
properly.
In listOffer()
, it updates the originOfferInfo.abortOfferStatus to SubOfferListed
for the Turbo
settle type.
But it won't be updated properly because originOfferInfo is a memory
variable instead of storage
.
The originOfferInfo.abortOfferStatus
wouldn't be updated properly after calling listOffer()
.
Manual Review
originOfferInfo
should be declared as storage
.
Valid high severity, because the `abortOfferStatus` of the offer is not updated and persist through `storage` when listing an offer for turbo mode within the `offerInfoMap` mapping, it allows premature abortion given the `abortOfferStatus` defaults to `Initialized`, allowing the bypass of this [check](https://github.com/Cyfrin/2024-08-tadle/blob/04fd8634701697184a3f3a5558b41c109866e5f8/src/core/PreMarkets.sol#L552-L557) here and allow complete refund of initial collateral + stealing of trade tax which can potentially be gamed for profits using multiple addresses
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.