AUTOMAPPER · CVE-2026-128081 · Package
FIX → 16.3.0 · 15.1.4
AutoMapper's MaxDepth limits from CVE-2026-32933 do not cover several mapping paths, including derived type maps, object-typed members, dictionary and dynamic sources, and recursive converters. Mapping attacker-influenced deeply nested data through these paths causes a StackOverflowException that cannot be caught and terminates the process.
first public Nov 5, 2026 · 2 sources
Check it with your coding agent
It reads this page and tells you if your code or app is affected.
Applications that use AutoMapper to map data from untrusted sources, such as deserialized JSON, where the input can be deeply nested. Exposure depends on whether one of the listed mapping paths is used with that input. Applications that map only trusted, shallow data are unlikely to be affected.
Not affected if shallow-data, trusted-input-only
Who cares automapper, dotnet, nuget, web-api
dotnet list package); affected versions are >= 16.0.0, < 16.3.0 and < 15.1.4.Include or IncludeBase maps, members typed as object or interfaces, ConvertUsing calls that invoke , and mapping of or from untrusted JSON.The default and explicit MaxDepth limits added for CVE-2026-32933 don't apply to several mapping paths. Mapping a deeply nested source through any of them recurses without bound and throws a StackOverflowException, which can't be caught and terminates the process.
Include / IncludeBase) didn't inherit the base map's MaxDepth, and the default limit for self-referential maps was only applied to the base map. A chain of derived objects was mapped without a limit, even with MaxDepth set on the base map.object or an interface aren't seen by self-reference detection, so the default limit isn't applied.Dictionary<string, object> or ExpandoObject (for example, deserialized JSON) onto typed destinations recurses with no depth tracking. has no effect.Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
InfraStack checks it against your stack and answers on your report, with the evidence and the fix.
context.Mapper.MapDictionary<string, object>ExpandoObjectUpgrade to 16.3.0 · 15.1.4
16.3.0 for the 16.x line15.1.4 for the 15.x lineMaxDepthConvertUsing that calls context.Mapper.Map ignores MaxDepth.An application that maps attacker-influenced, deeply nested data through one of these paths can be crashed. On a 1 MB stack (the Windows default), a few thousand levels of nesting are enough.
MaxDepth, and the default limit is applied to them.InsufficientExecutionStackException instead of overflowing.Set MaxDepth explicitly on derived maps and on maps reached through object or interface members. There is no configuration workaround for dictionary or dynamic sources, or for recursive type converters, other than limiting input depth before mapping.
MaxDepth not enforced through constructor parameters and positional records, fixed in the same releases.This page as .md · .json · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
GitHub Advisory Database, CC-BY 4.0 · NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.