In listOffer(), when offer settle type is turbo, originOfferInfo.abortOfferStatus cannot get changed because it sets to memory instead of storage.
When invoking PreMarkets::listOffer(), as said in the comments, change abort offer status when offer settle type is turbo
, however it doesn't changed in storage because it gets set to memory
instead of storage
.
Not properly changing the abortOfferStatus could cause unexpected issues to occur.
Manual review
Change the code so it gets storage
pointer instead of memory
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.