Uploaded image for project: 'Fabric'
  1. Fabric
  2. FAB-18529

SIGSEGV: segmentation violation in orderer after recieving a message generated by fuzzer

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Highest
    • Resolution: Done
    • v1.4.0, v2.0.0, v2.1.0
    • None
    • fabric-orderer
    • Hide

      1. Setup a simple fabric network with at least one orderer (using etcdraft consensus)
      2. Send a constructed message whose Payload is nil to the interface 'Order(env *cb.Envelope, configSeq uint64) error' of orderer's, then this orderer node panic and breakdown immediately. In my fuzzing experiment, the message is generated by my fuzzer, the Envelope of this message can be found in my attach files.
      Show
      1. Setup a simple fabric network with at least one orderer (using etcdraft consensus) 2. Send a constructed message whose Payload is nil to the interface 'Order(env *cb.Envelope, configSeq uint64) error' of orderer's, then this orderer node panic and breakdown immediately. In my fuzzing experiment, the message is generated by my fuzzer, the Envelope of this message can be found in my attach files.

    Description

      panic: runtime error: invalid memory address or nil pointer dereference

      [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x933146]

       

      goroutine 69 [running]:

      github.com/hyperledger/fabric/protoutil.ChannelHeader(0x0, 0xc00016dc20, 0x1, 0xc00016dc20)

      /go/src/github.com/hyperledger/fabric/protoutil/commonutils.go:215 +0x26

      github.com/hyperledger/fabric/orderer/consensus/etcdraft.(*Chain).isConfig(0xc000282300, 0x0, 0xc0006fbab0)

      /go/src/github.com/hyperledger/fabric/orderer/consensus/etcdraft/chain.go:1167 +0x2b

      github.com/hyperledger/fabric/orderer/consensus/etcdraft.(*Chain).ordered(0xc000282300, 0xc0002825b0, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0)

      /go/src/github.com/hyperledger/fabric/orderer/consensus/etcdraft/chain.go:894 +0x7e

      github.com/hyperledger/fabric/orderer/consensus/etcdraft.(*Chain).run(0xc000282300)

      /go/src/github.com/hyperledger/fabric/orderer/consensus/etcdraft/chain.go:707 +0x450

      created by github.com/hyperledger/fabric/orderer/consensus/etcdraft.(*Chain).Start

      /go/src/github.com/hyperledger/fabric/orderer/consensus/etcdraft/chain.go:368 +0x23c

       

       

      When the Payload of msg (orderer.SubmitRequest) is nil, this bug will occur.

      Attachments

        Activity

          People

            Param-S Parameswaran Selvam
            yuanliangchen sard Chen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: