diff --git a/plugins/drng/plugin.go b/plugins/drng/plugin.go
index 5b43673e688f8d42daf7b997082917921bf31c78..2f5462eb6bb0fdf71fe087ff75e5a6da5ef967b9 100644
--- a/plugins/drng/plugin.go
+++ b/plugins/drng/plugin.go
@@ -5,6 +5,7 @@ import (
 
 	"github.com/iotaledger/goshimmer/packages/binary/drng"
 	"github.com/iotaledger/goshimmer/packages/binary/drng/payload"
+	"github.com/iotaledger/goshimmer/packages/binary/drng/payload/header"
 	"github.com/iotaledger/goshimmer/packages/binary/drng/state"
 	cbPayload "github.com/iotaledger/goshimmer/packages/binary/drng/subtypes/collectiveBeacon/payload"
 	"github.com/iotaledger/goshimmer/packages/binary/messagelayer/message"
@@ -68,6 +69,12 @@ func configureEvents() {
 		cachedMessageMetadata.Release()
 
 		cachedMessage.Consume(func(msg *message.Message) {
+			if msg.Payload().Type() != payload.Type {
+				return
+			}
+			if len(msg.Payload().Bytes()) < header.Length {
+				return
+			}
 			marshalUtil := marshalutil.New(msg.Payload().Bytes())
 			parsedPayload, err := payload.Parse(marshalUtil)
 			if err != nil {