Closed HKskn closed 3 months ago
Fixed. We have modified the cancelOrder
function by adding the cancelOrderInfo
and cancelOrderSignature
parameters to ensure that only an authorized wallet can call the cancelOrder function and validate that the caller is also the owner of the order. The reason for this change is to prevent active listed orders from becoming invalid.
SEE-06M: Insecure Order / Offer Cancellation Mechanism
Description:
The
SalvorExchange::cancelOffer
andSalvorExchange::cancelOrder
functions are insecure given that their signature validation methodology is insufficient in guarding against unwanted offer and order cancellations respectively.Impact:
It is presently possible to cancel offers and more importantly orders arbitrarily as one can construct an
order
payload that would result in a conflictingorderKeyHash
with another order, sign it themselves, and cancel it.Example:
Recommendation:
We advise the
offerFills
andfills
mappings to utilize the full offer and order hashes respectively, and we additionally recommend the actual signer to be a member of the signed payload and validated as such.