Single-step ownership transfers add the risk of setting an unwanted owner by accident (this includes address(0)) if the ownership transfer is not done with excessive care.
Context:
https://github.com/Cyfrin/2024-01-Morpheus/blob/main/contracts/Distribution.sol#L15C1-L16C1
https://github.com/Cyfrin/2024-01-Morpheus/blob/main/contracts/L1Sender.sol#L15C1-L16C1
https://github.com/Cyfrin/2024-01-Morpheus/blob/main/contracts/L2MessageReceiver.sol#L10
https://github.com/Cyfrin/2024-01-Morpheus/blob/main/contracts/L2TokenReceiver.sol#L13
https://github.com/Cyfrin/2024-01-Morpheus/blob/main/contracts/MOR.sol#L10
https://solodit.xyz/issues/l-04-use-code4rena-redacted-cartel-redacted-cartel-contest-git
If the new address is inactive or not willing to act, there is no way to restore access to that role. Therefore, the owner role can be lost.
Manual Review
It is recommended to use the Ownable2Step library instead of Ownable library.
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.