The Orderbranch.canceMarketOrder() function allows an active order to be cancel. It requires the order creator to wait for at least globalConfiguration.marketOrderMinLifetime seconds before canceling an active order. This delay has been effective in countering spam orders, especially in a busy market where it usually takes a bit longer for orders to be filled(as said here).
The issue with this approach is, if a legitimate user wants to cancel their order after the delay has been passed, the order cannot be cancelled because it has already been filled or executed by keepers. This is due to the fact that keepers are not bound by this delay.
As a result, any unwanted trade that the user chooses to cancel may get executed before it becomes eligible for cancellation, leaving no room for the order to be cancelled, causing a potential damage to the user's position.
The likelihood is relatively higher, due to the facts its happening to every single order considering the keepers are bots.
The impact depends on the trade size, since there is no max cap it could be large enough to cause a potential fund loss to user position due to trade being not timely cancelled.
Manual review
Allow keepers to fill order only after the certain delay,
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.