---
id: "CVE-2026-112332"
kind: "vulnerability"
aliases: ["CVE-2026-112332"]
title: "Motor.NET: crafted JSON message crash-loops consumer service permanently"
severity: "high"
cvss: 8.7
epss: 0.00431
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["dotnet", "message-queues", "motor.net", "package"]
not_affected_if: ["no-queue-consumers", "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-112332", "first_seen_at": "2026-10-23T21:57:32+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-112332", "first_seen_at": "2026-10-24T07:15:51+00:00"}]
---

# Motor.NET: crafted JSON message crash-loops consumer service permanently

Motor.NET versions before 0.19.0 do not catch JsonSerializationException in the JSON deserializer, so a malformed-for-type message stops the consuming service. The unacknowledged message is redelivered on restart, so the service crashes in a loop.

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

## How to check

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

## Fix

Upgrade Motor.NET to 0.19.0 or later.

## Timeline

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

## From the sources

Motor.NET before 0.19.0 contains an uncaught exception vulnerability in JsonNetDeserializer.Deserialize that allows a remote attacker who can publish to a consumed queue or topic to crash the service permanently by sending structurally valid JSON that does not match the handler's expected type. Attackers can exploit the fact that JsonSerializationException is not caught alongside JsonReaderException and InvalidCastException, causing TypedConsumerService.SingleMessageConsumeAsync to treat the error as CriticalFailure and call StopApplication, which combined with the unacknowledged message being redelivered on restart results 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_
