---
id: "CVE-2026-112331"
kind: "vulnerability"
aliases: ["CVE-2026-112331"]
title: "Motor.NET: one crafted Kafka record crash-loops the consumer service"
severity: "high"
cvss: 8.7
epss: 0.00679
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["dotnet", "kafka", "motor.net", "package"]
not_affected_if: ["not-using-motor-net", "version-0.19.0-or-later"]
published_at: "2026-10-22T20:17:05+00:00"
first_seen_at: "2026-10-23T21:57:32+00:00"
updated_at: "2026-10-24T07:15:51+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-112331", "first_seen_at": "2026-10-23T21:57:32+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-112331", "first_seen_at": "2026-10-24T07:15:51+00:00"}]
---

# Motor.NET: one crafted Kafka record crash-loops the consumer service

Motor.NET versions before 0.19.0 let anyone who can write to a consumed Kafka topic send one malformed CloudEvent record. The service treats the resulting exception as fatal and reprocesses the same record on every restart, so it stays down.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

Check the Motor.NET version in your .NET project's package references (for example, the csproj or packages.lock.json) and confirm whether it is below 0.19.0.

## Fix

Upgrade Motor.NET to 0.19.0 or later.
Until then, restrict which principals can produce to the consumed topics.

## Timeline

- 2026-10-23T21:57:32+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-112331
- 2026-10-24T07:15:51+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-112331

## From the sources

Motor.NET before 0.19.0 contains a denial-of-service vulnerability that allows a remote attacker who can produce records to a consumed topic to crash the service permanently by sending a single crafted record. By setting the content-type header to application/cloudevents+json and omitting required CloudEvent attributes (id, source, type), the attacker triggers an ArgumentException in KafkaMessageConsumer.SingleMessageHandlingAsync that is treated as fatal, causing the host to stop and re-process the same poison record on every restart, resulting in a permanent crash-loop.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
