A standard assumption is that a smart contract wallet should support any actions that can be taken by a standard EOA wallet, in addition to the extra features advertised by the smart contract wallet. The two main selling features of this smart contract wallet are 1) multi-sig and 2) timelock for high value ether transfers. However, this wallet disallows transfers to the zero address, which is not an immediate requirement to support either (1) or (2). Disallowing transfers to the zero address therefore seems unnecessary and adds friction to a potential user adopting this wallet, in the case that that user wanted to make transfers to the zero address.
Likelihood:
Transfers to the zero address are not necessarily common, but they do occur. On mainnet ethereum alone, the zero address has over 14.000 Ether as of this finding. Further, there are numerous zero-value transfers to the zero address, which may hold meaning to their callers, even if they appear useless without context. https://etherscan.io/address/0x0000000000000000000000000000000000000000
Impact:
Transfers cannot be made to the zero address
The following two unit tests show the difference. In the first test, we see that a transfer to the zero address is allowed and can be done by a smart contract. This can also be done by an EOA.
The second test, which was taken from the existing test suite, shows that the MultiSigTimelock disallows this transfer, intentionally.
Unless there is a strong reason why transfers to the zero address should not be allowed, they should be supported.
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.
The contest is complete and the rewards are being distributed.