Closed
Description
What is wrong?
process_deposit
accepts deposits with an invalid merkle proof as valid
How can it be fixed
process_deposit
should fail ifis_valid_merkle_branch()
is false e.g.return false
is_valid_merkle_branch()
should be called withdepth=DEPOSIT_CONTRACT_TREE_DEPTH + 1
according to the spec (https://github.com/ethereum/eth2.0-specs/blob/v0.10.1/specs/phase0/beacon-chain.md#deposits)
How it was found
Discovered via beacon-fuzz
(initial testing of deposit
fuzzer).
Triggering case: nim-deposit-crash-5d4907f2962783d3806b93bfe1a5f4c808b1c3bf with the following beacon_state
s
Or the pre-processed input deposit_preprocessed_invalid_merkle.ssz can be directly passed to the nimbus harness nfuzz_deposit
Metadata
Metadata
Assignees
Labels
No labels