{"id":"CVE-2026-112332","kind":"vulnerability","aliases":["CVE-2026-112332"],"related":[],"title":"Motor.NET: crafted JSON message crash-loops consumer service permanently","description":"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.","summary":"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.","severity":"high","cvss":8.7,"epss":0.00431,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["dotnet","message-queues","motor.net","package"],"not_affected_if":["no-queue-consumers","version-0.19.0-or-later"],"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.","status":"open","published_at":"2026-10-22T20:17:05+00:00","first_seen_at":"2026-10-23T21:57:32+00:00","triaged_at":"2026-10-23T22:35:09+00:00","updated_at":"2026-10-24T07:15:51+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-23T22:35:09Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade Motor.NET to 0.19.0 or later.","reach":"network","title":"Motor.NET: crafted JSON message crash-loops consumer service permanently","impact":"medium","summary":"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.","category":"package","who_cares":["dotnet","motor.net","message-queues"],"confidence":0.7,"needs_auth":"no","worst_case":"Consumer service crashes repeatedly and stays down until the message is removed.","analyst_note":"","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.","needs_analyst":false,"not_affected_if":["version-0.19.0-or-later","no-queue-consumers"],"user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000495,"input_tokens":3041,"output_tokens":381,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-112332':13A,16A '-2026':12A,15A '0.19.0':26B,62C 'allow':71C 'alongsid':113C 'attack':74C,103C 'call':126C 'catch':29B 'caught':112C 'caus':117C 'combin':129C 'consum':8A,44B,80C 'contain':63C 'craft':2A 'crash':6A,56B,85C,143C 'crash-loop':5A,142C 'criticalfailur':124C 'cve':11A,14A 'deseri':34B 'dotnet':17B 'error':122C 'except':66C 'expect':101C 'exploit':105C 'fact':107C 'handler':99C 'invalidcastexcept':116C 'json':3A,33B,93C 'jsonnetdeserializer.deserialize':69C 'jsonreaderexcept':114C 'jsonserializationexcept':30B,109C 'loop':7A,59B,144C 'malform':38B 'malformed-for-typ':37B 'match':97C 'messag':4A,19B,41B,48B,133C 'message-queu':18B 'motor.net':1A,21B,23B,60C 'packag':22B 'perman':10A,88C,141C 'publish':77C 'queue':20B,81C 'redeliv':50B,135C 'remot':73C 'restart':52B,137C 'result':138C 'send':90C 'servic':9A,45B,55B,87C 'stop':42B 'stopappl':127C 'structur':91C 'topic':83C 'treat':120C 'type':40B,102C 'typedconsumerservice.singlemessageconsumeasync':118C 'unacknowledg':47B,132C 'uncaught':65C 'valid':92C 'version':24B 'vulner':67C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-22T20:17:05+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-112332","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112332","severity":null,"published_at":"2026-10-22T20:17:05+00:00","modified_at":"2026-10-23T17:06:36+00:00","first_seen_at":"2026-10-23T21:57:32+00:00","fetched_at":"2026-10-23T22:29:03+00:00","note":null},{"source":"epss","external_id":"CVE-2026-112332","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-112332","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T07:15:51+00:00","fetched_at":"2026-10-25T12:38:51+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}