[Crash/Fuzzing] AssertionError during Deposit SSZ parsing.
pventuzelo opened this issue · 5 comments
Hi,
During fuzzing with beacon-fuzz, I triggered an AssertionError
during parsing of Deposit
ssz file with mainnet
preset.
Error:
Error: unhandled exception: XXX/nim-beacon-chain/beacon_chain/spec/crypto.nim(290, 12) 'value.kind == Real' [AssertionError]
Reproducing
Download:
assert_nimbus_deposit.zip
commit: 96431bfd861be168ecc4cefb14fdb77d28108a24
Load the file using ncli_pretty
:
$ cd ncli
$ ../env.sh nim c -d:const_preset=mainnet ncli_pretty
$ ./ncli_pretty --kind=deposit --file=assert_nimbus_deposit.ssz
Traceback (most recent call last, using override)
XXX/nim-beacon-chain/vendor/nim-confutils/confutils.nim(981) confutils
XXX/nim-beacon-chain/vendor/nim-serialization/serialization.nim(41) CLI
XXX/nim-beacon-chain/vendor/nim-serialization/serialization.nim(27) encodeImpl
XXX/nim-beacon-chain/vendor/nim-serialization/serialization/object_serialization.nim(173) writeValue
XXX/nim-beacon-chain/vendor/nim-serialization/serialization/object_serialization.nim(173) writeValue
XXX/nim-beacon-chain/beacon_chain/spec/crypto.nim(290) writeValue
XXX/nim-beacon-chain/vendor/nimbus-build-system/vendor/Nim/lib/system/assertions.nim(29) failedAssertImpl
XXX/nim-beacon-chain/vendor/nimbus-build-system/vendor/Nim/lib/system/assertions.nim(22) raiseAssert
XXX/nim-beacon-chain/vendor/nimbus-build-system/vendor/Nim/lib/system/fatal.nim(51) sysFatal
XXX/nim-beacon-chain/vendor/nimbus-build-system/vendor/Nim/lib/system/excpt.nim(407) reportUnhandledError
XXX/nim-beacon-chain/vendor/nimbus-build-system/vendor/Nim/lib/system/excpt.nim(358) reportUnhandledErrorAux
Error: unhandled exception: XXX/nim-beacon-chain/beacon_chain/spec/crypto.nim(290, 12) `value.kind == Real` [AssertionError]
I can reproduce this on 96431bfd861be168ecc4cefb14fdb77d28108a24
but not current devel
-- 7b8d6ea
For devel
branch, commit 7b8d6ea61c46ceb0edce1418a38275d7859f1334
Try with this sample:
assert_nimbus_devel_deposit.zip
Same lack of crash here on devel
:
nim-beacon-chain/ncli$ ./ncli_pretty --kind=deposit --file=../../assert_nimbus_devel_deposit.ssz | head && echo exit value is 0
{
"proof": [
{
"data": [
0,
0,
0,
0,
0,
0,
exit value is 0
I'm on commit:
commit 7b8d6ea61c46ceb0edce1418a38275d7859f1334 (HEAD -> devel, origin/devel)
Author: Ștefan Talpalaru <stefantalpalaru@yahoo.com>
Date: Thu Apr 16 00:20:27 2020 +0200
my bad, on devel
it's good ;)
Good to know, and glad to have verified this was fixed.