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.