In order to start trading, the user must first create an account, however, there is no limit on how many accounts a single user can have, and since it's costless, a malicious user can repeatedly call createTradingAccount and DoS the protocol.
You may add the following proof of code to createTradingAccount.t.sol to corroborate the previusly stated issue.
The protocol can be DoS by malicius user spamming createTradingAccount, making it impossible for other users to interact with it.
Manual review
Consider adding a maximum number of accounts per address, if it's more than one, you may add a mapping address(user)=>accounts[ ], as well as a check of said max in createTradingAccount, so that it reverts if maximum amount is reached. You could also add a cooldown time between the creation of accounts by the same user.
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.