CVE-2026-32933
C# vulnerability analysis and mitigation

Overview

CVE-2026-32933 is a Denial of Service (DoS) vulnerability in AutoMapper, a convention-based object-object mapper for .NET, caused by uncontrolled recursion when mapping deeply nested object graphs. The vulnerability affects all versions prior to 15.1.1 and versions 16.0.0 through 16.1.0 (prior to 16.1.1). It was disclosed by researcher @skdishansachin via responsible disclosure and published on March 13–20, 2026. The CVSS v3.1 base score is 7.5 (High) (GitHub Advisory, Feedly).

Technical details

The root cause is CWE-674 (Uncontrolled Recursion): AutoMapper's core mapping engine recursively maps object properties without enforcing a default maximum recursion depth. When a source object contains a self-referential property (e.g., a Circular class with a Self property of the same type), the mapper descends into each level indefinitely. In standard .NET environments, approximately 25,000–30,000 levels of nesting are sufficient to exhaust the thread's stack memory, triggering a StackOverflowException. Because StackOverflowException cannot be caught in modern .NET runtimes, the entire application process terminates immediately with no possibility of recovery. A proof-of-concept is included in the official advisory, demonstrating the crash by constructing a 30,000-level nested object graph and calling mapper.Map() (GitHub Advisory, Patch Commit).

Impact

Successful exploitation results in complete process termination of the hosting application, causing a full Denial of Service. Unlike standard unhandled exceptions, a StackOverflowException cannot be caught or handled, meaning the entire application server process crashes — not just the individual request thread — affecting all concurrent users and requests. There is no confidentiality or integrity impact; the vulnerability is limited to availability. Any .NET application that accepts untrusted or attacker-controlled input and passes it through an AutoMapper mapping path involving self-referential types is at risk (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify target .NET web applications or APIs that use AutoMapper (versions < 15.1.1 or 16.0.0–16.1.0) and accept user-supplied structured data (e.g., JSON payloads) that is deserialized and passed to mapper.Map().
  2. Identify vulnerable mapping paths: Determine if the application maps self-referential or deeply nestable object types (e.g., tree structures, linked lists, hierarchical models) through AutoMapper.
  3. Craft malicious payload: Construct a deeply nested object graph — approximately 25,000–30,000+ levels — in the format accepted by the target API endpoint (e.g., a deeply nested JSON object corresponding to a self-referential type).
  4. Submit the payload: Send the crafted payload to the target endpoint via HTTP POST or other accepted method. The application deserializes the input and passes it to mapper.Map().
  5. Trigger StackOverflowException: AutoMapper recursively maps each level without a depth limit, exhausting the thread stack and triggering an uncatchable StackOverflowException, which immediately terminates the entire application process.
  6. Result: The application server crashes, causing a complete Denial of Service for all users until the process is restarted (GitHub Advisory).

Indicators of compromise

  • Logs: Sudden application crash logs or Windows Event Log entries indicating an unhandled StackOverflowException in the .NET runtime; IIS/Kestrel/application host logs showing unexpected process termination without a graceful shutdown message.
  • Network: Repeated HTTP requests to API endpoints that accept nested structured data (e.g., JSON with deeply recursive fields), particularly requests with unusually large or deeply nested payloads.
  • Process: Abrupt termination of the .NET application worker process (e.g., w3wp.exe, dotnet.exe) without a corresponding graceful shutdown event; process restart events in application monitoring tools shortly after receiving specific requests.
  • Application Monitoring: Spikes in request payload size or nesting depth correlated with application crashes; alerts from APM tools (e.g., Application Insights, Datadog) indicating process-level crashes rather than handled exceptions (GitHub Advisory).

Mitigation and workarounds

Upgrade AutoMapper to version 15.1.1 (for the v15 branch) or 16.1.1 (for the v16 branch), which apply a default MaxDepth of 64 for self-referential type mappings — matching the defaults used by System.Text.Json and Newtonsoft.Json (v15.1.1 Release, v16.1.1 Release). If upgrading immediately is not possible, developers can manually configure MaxDepth in their mapping configuration: cfg.CreateMap<T, T>().MaxDepth(64);. Applications that legitimately require deeper mapping can increase the limit explicitly with .MaxDepth(n), or disable the depth limit entirely by calling .PreserveReferences() explicitly (Patch Commit). Additionally, input validation to reject excessively nested payloads at the API boundary is recommended as a defense-in-depth measure.

Community reactions

The vulnerability was responsibly disclosed by researcher @skdishansachin and acknowledged by AutoMapper maintainer @jbogard, who released patches for both supported branches within days of the advisory publication (v16.1.1 Release, v15.1.1 Release). The issue received coverage from security aggregators including CVEFeed, VulDB, and Mastodon security accounts, reflecting moderate community interest given AutoMapper's widespread use in the .NET ecosystem. No significant controversy or major media coverage was noted beyond standard vulnerability tracking and advisory dissemination.

Additional resources


SourceThis report was generated using AI

Related C# vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-p5rm-jg5c-8c77MEDIUM6.1
  • C# logoC#
  • Microsoft.OpenApi.Kiota
NoYesJul 24, 2026
CVE-2026-62946MEDIUM5.1
  • C# logoC#
  • Magick.NET-Q8-x86
NoYesJul 24, 2026
CVE-2026-62363MEDIUM5
  • C# logoC#
  • Magick.NET-Q8-AnyCPU
NoYesJul 24, 2026
CVE-2026-62343MEDIUM4.7
  • C# logoC#
  • Magick.NET-Q8-x86
NoYesJul 24, 2026
GHSA-464c-974j-9xm6LOW3.3
  • JavaScript logoJavaScript
  • @aws-cdk/aws-codebuild
NoYesJul 24, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management