The codebase has a number of upgradeable contracts which use OpenZeppelin Initializable but don't have a constructor which calls _disableInitializers
per the OpenZeppelin documentation.
Contract implementations could be initialized when this should not be possible.
Manual Review
Contracts meant to be upgreadable like Bridge.sol should implement disableInitializers in their constructor this way:
Likelyhood: Low/Medium Impact: Very low, the attacker can at most run the protocol on their side and lead a phishing campaign with an address deployed by Ark.
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.