<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Defense-in-Depth — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/defense-in-depth/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 17 Apr 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/defense-in-depth/feed.xml" rel="self" type="application/rss+xml"/><item><title>Meridian Library Multiple Defense-in-Depth Gaps</title><link>https://feed.craftedsignal.io/briefs/2026-04-17-meridian-defense-gaps/</link><pubDate>Fri, 17 Apr 2026 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-17-meridian-defense-gaps/</guid><description>Multiple defense-in-depth gaps exist in Meridian versions prior to 2.1.1, including high severity issues related to bypassing safety caps on collection mapping that can lead to resource exhaustion, along with medium and low severity issues affecting constructor selection, telemetry, retry mechanisms, and exception handling.</description><content:encoded><![CDATA[<p>Meridian versions before 2.1.1 contain multiple vulnerabilities stemming from defense-in-depth gaps within the <code>Meridian.Mapping</code> and <code>Meridian.Mediator</code> components. Two high-severity issues involve bypassing the advertised <code>DefaultMaxCollectionItems</code> and <code>DefaultMaxDepth</code> safety caps, particularly when using the <code>IMapper.Map(source, destination)</code> overload or <code>.UseDestinationValue()</code> on collection-typed properties. These flaws can lead to resource exhaustion. Additional medium-severity issues include constructor invariant bypass, OpenTelemetry stack-trace information disclosure, retry amplification, and notification fan-out amplification. The vulnerabilities were patched in version 2.1.1, released on April 16, 2026. The issues affect applications using the Meridian library for object-object mapping and mediation. Successful exploitation could lead to denial-of-service conditions, information disclosure, and unexpected application behavior.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker sends a crafted request to an application using Meridian, including a large or self-referential collection in the request payload.</li>
<li>The application&rsquo;s mapping logic utilizes <code>IMapper.Map(source, destination)</code> or <code>.UseDestinationValue()</code> on a collection property, triggering the vulnerable code path.</li>
<li>The <code>MappingEngine.TryMapCollectionOntoExisting</code> method processes the collection without enforcing <code>DefaultMaxCollectionItems</code>, leading to excessive memory consumption.</li>
<li>Collection-item recursion fails to increment <code>ResolutionContext.Depth</code>, allowing self-referential graphs to bypass <code>DefaultMaxDepth</code> and cause a stack overflow.</li>
<li>The unbounded collection processing consumes excessive CPU and memory resources, potentially blocking the worker thread.</li>
<li>Alternatively, an attacker exploits the <code>ObjectCreator.CreateWithConstructorMapping</code> vulnerability by providing input that bypasses constructor invariants due to the widest constructor being selected.</li>
<li>The application experiences a denial-of-service condition due to resource exhaustion or exhibits unintended behavior due to bypassed constructor invariants.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of these vulnerabilities can lead to significant consequences. An attacker can cause denial-of-service by exhausting server resources, potentially impacting all users of the affected application. Information disclosure is possible through OpenTelemetry stack traces, and bypassing constructor invariants can lead to unexpected application behavior and potential data corruption. The high-severity vulnerabilities related to collection mapping are particularly concerning due to the potential for easy exploitation through a single crafted request. The impact is mitigated by upgrading to version 2.1.1 of the <code>Meridian.Mapping</code> and <code>Meridian.Mediator</code> libraries.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Immediately upgrade to Meridian version 2.1.1 to patch the identified vulnerabilities, as documented in the <a href="https://github.com/UmutKorkmaz/meridian/blob/main/CHANGELOG.md#211---2026-04-16">v2.1.1 CHANGELOG</a>.</li>
<li>For applications that cannot be immediately upgraded, avoid using <code>mapper.Map(src, dst)</code> and <code>.UseDestinationValue()</code> on collection-typed destination members as a temporary workaround.</li>
<li>Implement explicit size limits on input collection deserialization before passing the payload to Meridian, as described in the <a href="#workarounds">Workarounds section</a> of this brief.</li>
<li>Consider disabling OpenTelemetry <code>exception.stacktrace</code> tag emission if your trace sink is not fully trusted, mitigating potential information disclosure.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>defense-in-depth</category><category>resource-exhaustion</category><category>information-disclosure</category><category>dotnet</category></item></channel></rss>