status-im / nimbus-eth2

Nim implementation of the Ethereum Beacon Chain
https://nimbus.guide
Other
523 stars 225 forks source link

[Crash/Fuzzing] AssertionError during state transition (vendor/nim-stew/stew/bitseqs.nim) #922

Closed pventuzelo closed 4 years ago

pventuzelo commented 4 years ago

During fuzzing, I triggered an AssertionError in state transition processing.

Error: unhandled exception: /XXX/nim-beacon-chain/vendor/nim-stew/stew/bitseqs.nim(172, 12)pos < s.len[AssertionError]

Reproducing

branch: devel commit: 65ca74c9807dd53a6a9d4a5ec0f6204065f700fa

Download: assert_bitseqs.zip

$ make
$ cd ncli
$ ../env.sh nim c -d:const_preset=mainnet ncli_transition

$ ./ncli_transition --pre= assert_bitseqs_beaconstate.ssz --blck= assert_bitseqs_block.ssz --post= assert_bitseqs_beaconstate.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-faststreams/faststreams/input_stream.nim(69) CLI
XXX/nim-beacon-chain/vendor/nimbus-build-system/vendor/Nim/lib/system/excpt.nim(418) nimLeaveFinally
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/vendor/nim-stew/stew/bitseqs.nim(172, 12) `pos < s.len`  [AssertionError]
tersec commented 4 years ago

https://github.com/status-im/nim-beacon-chain/pull/927