Silo deposit is ERC1155 token and users can transfer it. There is sanity check that receiver is not address(0) in EIP1155 functions safeTransferFrom() and safeBatchTransferFrom().
However there is no such a requirement in other functions transferDeposit() and transferDeposits().
Potentially it can cause issues in future because after such transfer address(0) will contain deposits and associated Stalk with Roots. At least it can receive non-claimable part of overall yield.
It's hard to prove by words, so I created test PoC that transfer to address(0) executes successfully
https://gist.github.com/T1MOH593/73aca79e01d29fc30c28bfd3ff1d3753
Deposits belonging to address(0)can cause issues in future upgrades.
Manual Review
Add sanity checks on address(0) in transfers.
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.