There are several input arguments, that are not checked if they are zero address.
The construcor parameter address _cusd in contracts ShortRecordFacet.sol and ExitShortFacet.sol, _zeth in VaultFacet.sol, the parameters _rethBridge and stethBridge in BridgeRouterFacet.sol and the input parameter diamondAddr in contracts Asset.sol and Ditto.sol are not checked if they are zero addresses (0x0).
It is a good practice to check if the input addresses are zero addresses. This is because the zero address is often used as a default value in Solidity, and sending tokens to this address will effectively burn them, as they cannot be recovered. Consider adding a requirement to prevent this.
Manual review, VS Code
Add require() to validate the address parameters in constructor in ShortRecordFacet.sol, ExitShortFacet.sol, VaultFacet.sol, BridgeRouterFacet.sol, Asset.sol and Ditto.sol:
In ShortRecordFacet.sol and ExitShortFacet.sol:
In VaultFacet.sol:
In BridgeRouterFacet.sol:
In Asset.sol:
In Ditto.sol:
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.