off chain order signatures can be replayed on monad
In the readme of the contest we can observe the following statement:
while offering a top-notch trading experience on Arbitrum (and Monad in the future).
As we can see from the snippet, zaros will be available on arbitrum but also monad in the near future. This is important because of the use of off chain orders in the system. Currently the offchain order struct is as follows
From the above code snippet we can see that the struct does not include a way to distinguish the chain ID. this means if a user has the same trading ID on Monad and is in the same market ID, it is possible to replay his signature used on arbitrum and force his account on monad to do an offchain order.
This allows malicious users to move a users funds without their consent.
A users signature on arbitrum can replayed on monad because of lack of chain id in signature. This will allow a malicious user to create an order of another user when they do not intend to open an order.
Manual Review
add a chain id feld to the data struct to ensure that signatures can only be used once on the chain the user desires.
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.