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

Orderer fails after receiving a message generated by fuzzer, and cannot be recover

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Highest
    • Resolution: Done
    • v1.4.0, v2.0.0, v2.0.1, v2.3.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 header is invalid 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 header is invalid 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: failed to extract channel header from envelope

       

      goroutine 44 [running]:

      go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc0002b52c0, 0x0, 0x0, 0x0)

      /go/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/zapcore/entry.go:234 +0x585

      go.uber.org/zap.(*SugaredLogger).log(0xc000209210, 0x4, 0x10df429, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)

      /go/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/sugar.go:234 +0xf6

      go.uber.org/zap.(*SugaredLogger).Panicf(...)

      /go/src/github.com/hyperledger/fabric/vendor/go.uber.org/zap/sugar.go:159

      github.com/hyperledger/fabric/common/flogging.(*FabricLogger).Panicf(...)

      /go/src/github.com/hyperledger/fabric/common/flogging/zap.go:74

      github.com/hyperledger/fabric/orderer/consensus/etcdraft.(*Chain).isConfig(0xc000140300, 0xc000f019a0, 0xc00016bd60)

      /go/src/github.com/hyperledger/fabric/orderer/consensus/etcdraft/chain.go:1169 +0xb8

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

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

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

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

       

      Attachments

        1. fuzz input
          0.1 kB
          sard Chen
        2. fuzz input in base64
          0.1 kB
          sard Chen

        Activity

          People

            yuanliangchen sard Chen
            yuanliangchen sard Chen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: