Bump AutoMapper from 13.0.1 to 16.1.1 - #865

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1
Closed

Bump AutoMapper from 13.0.1 to 16.1.1#865
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1

Conversation

@dependabot

@dependabotdependabotBot commented on behalf of githubMar 14, 2026

Copy link
Copy Markdown
Contributor

Updated AutoMapper from 13.0.1 to 16.1.1.

Release notes

Sourced from AutoMapper's releases.

16.1.1

What's Changed

Security

Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.

Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.

Users should upgrade to this release.

Security advisory: GHSA-rvv3-g6hj-g44x

Thanks to @​bluefossa for responsibly disclosing this issue.

Full Changelog: LuckyPennySoftware/AutoMapper@v16.1.0...v16.1.1

16.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v16.0.0...v16.1.0

16.0.0

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0

16.0.0-beta-1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0-beta-1

This release is a beta release that introduces .NET 10 support and package signing. Signed packages means going forward packages can be validated against trusted authorities that the package has been published by Lucky Penny Software and not tampered with.

15.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.1...v15.1.0

15.0.1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.0...v15.0.1

This release supersedes the 15.0.0 release, reverting behavior and overloads so that the AddAutoMapper overloads separate the "scanning for maps" from the "scanning for dependencies". Unfortunately it's not really possible to combine these two together.

This also fixes a critical bug in #​4545 that does not work with .NET 4.x applications (as intended).

Because of this, the 15.0.0 will be delisted because of the breaking changes there.

15.0.0

Full Changelog: LuckyPennySoftware/AutoMapper@v14.0.0...v15.0.0

  • Added support for .NET Standard 2.0
  • Requiring license key
  • Moving from MIT license to dual commercial/OSS license

To set your license key:

services.AddAutoMapper(cfg =>{cfg.LicenseKey="<License key here>";});

This also introduced a breaking change with MapperConfiguration requiring an ILoggerFactory for logging purposes:

publicMapperConfiguration(MapperConfigurationExpression configurationExpression,ILoggerFactory loggerFactory)

Registering AutoMapper with services.AddAutoMapper will automatically supply this parameter. Otherwise you'll need to supply the logger factory.

You can obtain your license key at AutoMapper.io

14.0.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v13.0.1...v14.0.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

---
updated-dependencies:
- dependency-name: AutoMapper
dependency-version: 16.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabotdependabotBot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Mar 14, 2026
@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep As far I understand, this doesn't pose a threat to mapster.

Automapper is now released under a dual license, but since we provide the source code, can we use 16.1.1 without purchasing a license or should we also change the license for benchmark to RPL-1.5?

@andrerav

Copy link
Copy Markdown
Member

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

@stagep

Copy link
Copy Markdown

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

I guess it would cause a Map Overflow exception :)

@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep It looks like the security alert has disappeared. :)
the link no longer leads anywhere

@dependabot@github

dependabotBot commented on behalf of githubMar 16, 2026

Copy link
Copy Markdown
ContributorAuthor

Superseded by #866.

@dependabotdependabotBot closed this Mar 16, 2026
@dependabot
dependabotBot deleted the dependabot/nuget/src/Benchmark/AutoMapper-16.1.1 branch March 16, 2026 13:45
@DocSvartz

DocSvartz commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

mapper for the described case

[TestMethod]
public void Cyrcular()
{
var root = new Circular() { Counter = -1 };
var current = root;
for (int i = 0; i < 30000; i++)
{
current.Self = new Circular() { Counter = i};
current = current.Self;
}
var result = root.AdaptFromCercular();
}
 public class CircularResult
{
public int Counter { get; set; }
public CircularResult Self { get; set; }
}
public class Circular { public int Counter { get; set; }
public Circular Self { get; set; } }
 public static class Helper
{
public static List<Circular> GetNestedObjects(this Circular start)
{
if (start == null || start.Self == null)
return new List<Circular>();
var resultList = new List<Circular>(30000);
var currentObject = start;
resultList.Add(currentObject);
while (currentObject != null && currentObject.Self != start && !resultList.Contains(currentObject.Self))
{
currentObject = currentObject.Self;
resultList.Add(currentObject);
}
return resultList;
}
public static CircularResult AdaptFromCercular(this Circular data)
{
var list = data.GetNestedObjects();
TypeAdapterConfig<Circular, CircularResult>
.NewConfig()
.Ignore(x => x.Self);
var result = list[0].Adapt<CircularResult>();
var current = result;
for (int i = 1; i < list.Count; i++)
{
current.Self = list[i].Adapt<CircularResult>();
current = current.Self;
}
return result;
}
}

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file.NETPull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DocSvartz@andrerav@stagep
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Bump AutoMapper from 13.0.1 to 16.1.1 - #865

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1
Closed

Bump AutoMapper from 13.0.1 to 16.1.1#865
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1

Conversation

@dependabot

@dependabotdependabotBot commented on behalf of githubMar 14, 2026

Copy link
Copy Markdown
Contributor

Updated AutoMapper from 13.0.1 to 16.1.1.

Release notes

Sourced from AutoMapper's releases.

16.1.1

What's Changed

Security

Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.

Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.

Users should upgrade to this release.

Security advisory: GHSA-rvv3-g6hj-g44x

Thanks to @​bluefossa for responsibly disclosing this issue.

Full Changelog: LuckyPennySoftware/AutoMapper@v16.1.0...v16.1.1

16.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v16.0.0...v16.1.0

16.0.0

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0

16.0.0-beta-1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0-beta-1

This release is a beta release that introduces .NET 10 support and package signing. Signed packages means going forward packages can be validated against trusted authorities that the package has been published by Lucky Penny Software and not tampered with.

15.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.1...v15.1.0

15.0.1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.0...v15.0.1

This release supersedes the 15.0.0 release, reverting behavior and overloads so that the AddAutoMapper overloads separate the "scanning for maps" from the "scanning for dependencies". Unfortunately it's not really possible to combine these two together.

This also fixes a critical bug in #​4545 that does not work with .NET 4.x applications (as intended).

Because of this, the 15.0.0 will be delisted because of the breaking changes there.

15.0.0

Full Changelog: LuckyPennySoftware/AutoMapper@v14.0.0...v15.0.0

  • Added support for .NET Standard 2.0
  • Requiring license key
  • Moving from MIT license to dual commercial/OSS license

To set your license key:

services.AddAutoMapper(cfg =>{cfg.LicenseKey="<License key here>";});

This also introduced a breaking change with MapperConfiguration requiring an ILoggerFactory for logging purposes:

publicMapperConfiguration(MapperConfigurationExpression configurationExpression,ILoggerFactory loggerFactory)

Registering AutoMapper with services.AddAutoMapper will automatically supply this parameter. Otherwise you'll need to supply the logger factory.

You can obtain your license key at AutoMapper.io

14.0.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v13.0.1...v14.0.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

---
updated-dependencies:
- dependency-name: AutoMapper
dependency-version: 16.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabotdependabotBot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Mar 14, 2026
@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep As far I understand, this doesn't pose a threat to mapster.

Automapper is now released under a dual license, but since we provide the source code, can we use 16.1.1 without purchasing a license or should we also change the license for benchmark to RPL-1.5?

@andrerav

Copy link
Copy Markdown
Member

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

@stagep

Copy link
Copy Markdown

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

I guess it would cause a Map Overflow exception :)

@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep It looks like the security alert has disappeared. :)
the link no longer leads anywhere

@dependabot@github

dependabotBot commented on behalf of githubMar 16, 2026

Copy link
Copy Markdown
ContributorAuthor

Superseded by #866.

@dependabotdependabotBot closed this Mar 16, 2026
@dependabot
dependabotBot deleted the dependabot/nuget/src/Benchmark/AutoMapper-16.1.1 branch March 16, 2026 13:45
@DocSvartz

DocSvartz commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

mapper for the described case

[TestMethod]
public void Cyrcular()
{
var root = new Circular() { Counter = -1 };
var current = root;
for (int i = 0; i < 30000; i++)
{
current.Self = new Circular() { Counter = i};
current = current.Self;
}
var result = root.AdaptFromCercular();
}
 public class CircularResult
{
public int Counter { get; set; }
public CircularResult Self { get; set; }
}
public class Circular { public int Counter { get; set; }
public Circular Self { get; set; } }
 public static class Helper
{
public static List<Circular> GetNestedObjects(this Circular start)
{
if (start == null || start.Self == null)
return new List<Circular>();
var resultList = new List<Circular>(30000);
var currentObject = start;
resultList.Add(currentObject);
while (currentObject != null && currentObject.Self != start && !resultList.Contains(currentObject.Self))
{
currentObject = currentObject.Self;
resultList.Add(currentObject);
}
return resultList;
}
public static CircularResult AdaptFromCercular(this Circular data)
{
var list = data.GetNestedObjects();
TypeAdapterConfig<Circular, CircularResult>
.NewConfig()
.Ignore(x => x.Self);
var result = list[0].Adapt<CircularResult>();
var current = result;
for (int i = 1; i < list.Count; i++)
{
current.Self = list[i].Adapt<CircularResult>();
current = current.Self;
}
return result;
}
}

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file.NETPull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DocSvartz@andrerav@stagep
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Bump AutoMapper from 13.0.1 to 16.1.1 - #865

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1
Closed

Bump AutoMapper from 13.0.1 to 16.1.1#865
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1

Conversation

@dependabot

@dependabotdependabotBot commented on behalf of githubMar 14, 2026

Copy link
Copy Markdown
Contributor

Updated AutoMapper from 13.0.1 to 16.1.1.

Release notes

Sourced from AutoMapper's releases.

16.1.1

What's Changed

Security

Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.

Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.

Users should upgrade to this release.

Security advisory: GHSA-rvv3-g6hj-g44x

Thanks to @​bluefossa for responsibly disclosing this issue.

Full Changelog: LuckyPennySoftware/AutoMapper@v16.1.0...v16.1.1

16.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v16.0.0...v16.1.0

16.0.0

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0

16.0.0-beta-1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0-beta-1

This release is a beta release that introduces .NET 10 support and package signing. Signed packages means going forward packages can be validated against trusted authorities that the package has been published by Lucky Penny Software and not tampered with.

15.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.1...v15.1.0

15.0.1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.0...v15.0.1

This release supersedes the 15.0.0 release, reverting behavior and overloads so that the AddAutoMapper overloads separate the "scanning for maps" from the "scanning for dependencies". Unfortunately it's not really possible to combine these two together.

This also fixes a critical bug in #​4545 that does not work with .NET 4.x applications (as intended).

Because of this, the 15.0.0 will be delisted because of the breaking changes there.

15.0.0

Full Changelog: LuckyPennySoftware/AutoMapper@v14.0.0...v15.0.0

  • Added support for .NET Standard 2.0
  • Requiring license key
  • Moving from MIT license to dual commercial/OSS license

To set your license key:

services.AddAutoMapper(cfg =>{cfg.LicenseKey="<License key here>";});

This also introduced a breaking change with MapperConfiguration requiring an ILoggerFactory for logging purposes:

publicMapperConfiguration(MapperConfigurationExpression configurationExpression,ILoggerFactory loggerFactory)

Registering AutoMapper with services.AddAutoMapper will automatically supply this parameter. Otherwise you'll need to supply the logger factory.

You can obtain your license key at AutoMapper.io

14.0.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v13.0.1...v14.0.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

---
updated-dependencies:
- dependency-name: AutoMapper
dependency-version: 16.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabotdependabotBot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Mar 14, 2026
@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep As far I understand, this doesn't pose a threat to mapster.

Automapper is now released under a dual license, but since we provide the source code, can we use 16.1.1 without purchasing a license or should we also change the license for benchmark to RPL-1.5?

@andrerav

Copy link
Copy Markdown
Member

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

@stagep

Copy link
Copy Markdown

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

I guess it would cause a Map Overflow exception :)

@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep It looks like the security alert has disappeared. :)
the link no longer leads anywhere

@dependabot@github

dependabotBot commented on behalf of githubMar 16, 2026

Copy link
Copy Markdown
ContributorAuthor

Superseded by #866.

@dependabotdependabotBot closed this Mar 16, 2026
@dependabot
dependabotBot deleted the dependabot/nuget/src/Benchmark/AutoMapper-16.1.1 branch March 16, 2026 13:45
@DocSvartz

DocSvartz commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

mapper for the described case

[TestMethod]
public void Cyrcular()
{
var root = new Circular() { Counter = -1 };
var current = root;
for (int i = 0; i < 30000; i++)
{
current.Self = new Circular() { Counter = i};
current = current.Self;
}
var result = root.AdaptFromCercular();
}
 public class CircularResult
{
public int Counter { get; set; }
public CircularResult Self { get; set; }
}
public class Circular { public int Counter { get; set; }
public Circular Self { get; set; } }
 public static class Helper
{
public static List<Circular> GetNestedObjects(this Circular start)
{
if (start == null || start.Self == null)
return new List<Circular>();
var resultList = new List<Circular>(30000);
var currentObject = start;
resultList.Add(currentObject);
while (currentObject != null && currentObject.Self != start && !resultList.Contains(currentObject.Self))
{
currentObject = currentObject.Self;
resultList.Add(currentObject);
}
return resultList;
}
public static CircularResult AdaptFromCercular(this Circular data)
{
var list = data.GetNestedObjects();
TypeAdapterConfig<Circular, CircularResult>
.NewConfig()
.Ignore(x => x.Self);
var result = list[0].Adapt<CircularResult>();
var current = result;
for (int i = 1; i < list.Count; i++)
{
current.Self = list[i].Adapt<CircularResult>();
current = current.Self;
}
return result;
}
}

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file.NETPull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DocSvartz@andrerav@stagep
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Bump AutoMapper from 13.0.1 to 16.1.1 - #865

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1
Closed

Bump AutoMapper from 13.0.1 to 16.1.1#865
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1

Conversation

@dependabot

@dependabotdependabotBot commented on behalf of githubMar 14, 2026

Copy link
Copy Markdown
Contributor

Updated AutoMapper from 13.0.1 to 16.1.1.

Release notes

Sourced from AutoMapper's releases.

16.1.1

What's Changed

Security

Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.

Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.

Users should upgrade to this release.

Security advisory: GHSA-rvv3-g6hj-g44x

Thanks to @​bluefossa for responsibly disclosing this issue.

Full Changelog: LuckyPennySoftware/AutoMapper@v16.1.0...v16.1.1

16.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v16.0.0...v16.1.0

16.0.0

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0

16.0.0-beta-1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0-beta-1

This release is a beta release that introduces .NET 10 support and package signing. Signed packages means going forward packages can be validated against trusted authorities that the package has been published by Lucky Penny Software and not tampered with.

15.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.1...v15.1.0

15.0.1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.0...v15.0.1

This release supersedes the 15.0.0 release, reverting behavior and overloads so that the AddAutoMapper overloads separate the "scanning for maps" from the "scanning for dependencies". Unfortunately it's not really possible to combine these two together.

This also fixes a critical bug in #​4545 that does not work with .NET 4.x applications (as intended).

Because of this, the 15.0.0 will be delisted because of the breaking changes there.

15.0.0

Full Changelog: LuckyPennySoftware/AutoMapper@v14.0.0...v15.0.0

  • Added support for .NET Standard 2.0
  • Requiring license key
  • Moving from MIT license to dual commercial/OSS license

To set your license key:

services.AddAutoMapper(cfg =>{cfg.LicenseKey="<License key here>";});

This also introduced a breaking change with MapperConfiguration requiring an ILoggerFactory for logging purposes:

publicMapperConfiguration(MapperConfigurationExpression configurationExpression,ILoggerFactory loggerFactory)

Registering AutoMapper with services.AddAutoMapper will automatically supply this parameter. Otherwise you'll need to supply the logger factory.

You can obtain your license key at AutoMapper.io

14.0.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v13.0.1...v14.0.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

---
updated-dependencies:
- dependency-name: AutoMapper
dependency-version: 16.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabotdependabotBot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Mar 14, 2026
@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep As far I understand, this doesn't pose a threat to mapster.

Automapper is now released under a dual license, but since we provide the source code, can we use 16.1.1 without purchasing a license or should we also change the license for benchmark to RPL-1.5?

@andrerav

Copy link
Copy Markdown
Member

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

@stagep

Copy link
Copy Markdown

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

I guess it would cause a Map Overflow exception :)

@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep It looks like the security alert has disappeared. :)
the link no longer leads anywhere

@dependabot@github

dependabotBot commented on behalf of githubMar 16, 2026

Copy link
Copy Markdown
ContributorAuthor

Superseded by #866.

@dependabotdependabotBot closed this Mar 16, 2026
@dependabot
dependabotBot deleted the dependabot/nuget/src/Benchmark/AutoMapper-16.1.1 branch March 16, 2026 13:45
@DocSvartz

DocSvartz commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

mapper for the described case

[TestMethod]
public void Cyrcular()
{
var root = new Circular() { Counter = -1 };
var current = root;
for (int i = 0; i < 30000; i++)
{
current.Self = new Circular() { Counter = i};
current = current.Self;
}
var result = root.AdaptFromCercular();
}
 public class CircularResult
{
public int Counter { get; set; }
public CircularResult Self { get; set; }
}
public class Circular { public int Counter { get; set; }
public Circular Self { get; set; } }
 public static class Helper
{
public static List<Circular> GetNestedObjects(this Circular start)
{
if (start == null || start.Self == null)
return new List<Circular>();
var resultList = new List<Circular>(30000);
var currentObject = start;
resultList.Add(currentObject);
while (currentObject != null && currentObject.Self != start && !resultList.Contains(currentObject.Self))
{
currentObject = currentObject.Self;
resultList.Add(currentObject);
}
return resultList;
}
public static CircularResult AdaptFromCercular(this Circular data)
{
var list = data.GetNestedObjects();
TypeAdapterConfig<Circular, CircularResult>
.NewConfig()
.Ignore(x => x.Self);
var result = list[0].Adapt<CircularResult>();
var current = result;
for (int i = 1; i < list.Count; i++)
{
current.Self = list[i].Adapt<CircularResult>();
current = current.Self;
}
return result;
}
}

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file.NETPull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DocSvartz@andrerav@stagep
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Bump AutoMapper from 13.0.1 to 16.1.1 - #865

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1
Closed

Bump AutoMapper from 13.0.1 to 16.1.1#865
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1

Conversation

@dependabot

@dependabotdependabotBot commented on behalf of githubMar 14, 2026

Copy link
Copy Markdown
Contributor

Updated AutoMapper from 13.0.1 to 16.1.1.

Release notes

Sourced from AutoMapper's releases.

16.1.1

What's Changed

Security

Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.

Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.

Users should upgrade to this release.

Security advisory: GHSA-rvv3-g6hj-g44x

Thanks to @​bluefossa for responsibly disclosing this issue.

Full Changelog: LuckyPennySoftware/AutoMapper@v16.1.0...v16.1.1

16.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v16.0.0...v16.1.0

16.0.0

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0

16.0.0-beta-1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0-beta-1

This release is a beta release that introduces .NET 10 support and package signing. Signed packages means going forward packages can be validated against trusted authorities that the package has been published by Lucky Penny Software and not tampered with.

15.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.1...v15.1.0

15.0.1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.0...v15.0.1

This release supersedes the 15.0.0 release, reverting behavior and overloads so that the AddAutoMapper overloads separate the "scanning for maps" from the "scanning for dependencies". Unfortunately it's not really possible to combine these two together.

This also fixes a critical bug in #​4545 that does not work with .NET 4.x applications (as intended).

Because of this, the 15.0.0 will be delisted because of the breaking changes there.

15.0.0

Full Changelog: LuckyPennySoftware/AutoMapper@v14.0.0...v15.0.0

  • Added support for .NET Standard 2.0
  • Requiring license key
  • Moving from MIT license to dual commercial/OSS license

To set your license key:

services.AddAutoMapper(cfg =>{cfg.LicenseKey="<License key here>";});

This also introduced a breaking change with MapperConfiguration requiring an ILoggerFactory for logging purposes:

publicMapperConfiguration(MapperConfigurationExpression configurationExpression,ILoggerFactory loggerFactory)

Registering AutoMapper with services.AddAutoMapper will automatically supply this parameter. Otherwise you'll need to supply the logger factory.

You can obtain your license key at AutoMapper.io

14.0.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v13.0.1...v14.0.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

---
updated-dependencies:
- dependency-name: AutoMapper
dependency-version: 16.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabotdependabotBot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Mar 14, 2026
@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep As far I understand, this doesn't pose a threat to mapster.

Automapper is now released under a dual license, but since we provide the source code, can we use 16.1.1 without purchasing a license or should we also change the license for benchmark to RPL-1.5?

@andrerav

Copy link
Copy Markdown
Member

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

@stagep

Copy link
Copy Markdown

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

I guess it would cause a Map Overflow exception :)

@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep It looks like the security alert has disappeared. :)
the link no longer leads anywhere

@dependabot@github

dependabotBot commented on behalf of githubMar 16, 2026

Copy link
Copy Markdown
ContributorAuthor

Superseded by #866.

@dependabotdependabotBot closed this Mar 16, 2026
@dependabot
dependabotBot deleted the dependabot/nuget/src/Benchmark/AutoMapper-16.1.1 branch March 16, 2026 13:45
@DocSvartz

DocSvartz commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

mapper for the described case

[TestMethod]
public void Cyrcular()
{
var root = new Circular() { Counter = -1 };
var current = root;
for (int i = 0; i < 30000; i++)
{
current.Self = new Circular() { Counter = i};
current = current.Self;
}
var result = root.AdaptFromCercular();
}
 public class CircularResult
{
public int Counter { get; set; }
public CircularResult Self { get; set; }
}
public class Circular { public int Counter { get; set; }
public Circular Self { get; set; } }
 public static class Helper
{
public static List<Circular> GetNestedObjects(this Circular start)
{
if (start == null || start.Self == null)
return new List<Circular>();
var resultList = new List<Circular>(30000);
var currentObject = start;
resultList.Add(currentObject);
while (currentObject != null && currentObject.Self != start && !resultList.Contains(currentObject.Self))
{
currentObject = currentObject.Self;
resultList.Add(currentObject);
}
return resultList;
}
public static CircularResult AdaptFromCercular(this Circular data)
{
var list = data.GetNestedObjects();
TypeAdapterConfig<Circular, CircularResult>
.NewConfig()
.Ignore(x => x.Self);
var result = list[0].Adapt<CircularResult>();
var current = result;
for (int i = 1; i < list.Count; i++)
{
current.Self = list[i].Adapt<CircularResult>();
current = current.Self;
}
return result;
}
}

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file.NETPull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DocSvartz@andrerav@stagep
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Bump AutoMapper from 13.0.1 to 16.1.1 - #865

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1
Closed

Bump AutoMapper from 13.0.1 to 16.1.1#865
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1

Conversation

@dependabot

@dependabotdependabotBot commented on behalf of githubMar 14, 2026

Copy link
Copy Markdown
Contributor

Updated AutoMapper from 13.0.1 to 16.1.1.

Release notes

Sourced from AutoMapper's releases.

16.1.1

What's Changed

Security

Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.

Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.

Users should upgrade to this release.

Security advisory: GHSA-rvv3-g6hj-g44x

Thanks to @​bluefossa for responsibly disclosing this issue.

Full Changelog: LuckyPennySoftware/AutoMapper@v16.1.0...v16.1.1

16.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v16.0.0...v16.1.0

16.0.0

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0

16.0.0-beta-1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0-beta-1

This release is a beta release that introduces .NET 10 support and package signing. Signed packages means going forward packages can be validated against trusted authorities that the package has been published by Lucky Penny Software and not tampered with.

15.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.1...v15.1.0

15.0.1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.0...v15.0.1

This release supersedes the 15.0.0 release, reverting behavior and overloads so that the AddAutoMapper overloads separate the "scanning for maps" from the "scanning for dependencies". Unfortunately it's not really possible to combine these two together.

This also fixes a critical bug in #​4545 that does not work with .NET 4.x applications (as intended).

Because of this, the 15.0.0 will be delisted because of the breaking changes there.

15.0.0

Full Changelog: LuckyPennySoftware/AutoMapper@v14.0.0...v15.0.0

  • Added support for .NET Standard 2.0
  • Requiring license key
  • Moving from MIT license to dual commercial/OSS license

To set your license key:

services.AddAutoMapper(cfg =>{cfg.LicenseKey="<License key here>";});

This also introduced a breaking change with MapperConfiguration requiring an ILoggerFactory for logging purposes:

publicMapperConfiguration(MapperConfigurationExpression configurationExpression,ILoggerFactory loggerFactory)

Registering AutoMapper with services.AddAutoMapper will automatically supply this parameter. Otherwise you'll need to supply the logger factory.

You can obtain your license key at AutoMapper.io

14.0.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v13.0.1...v14.0.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

---
updated-dependencies:
- dependency-name: AutoMapper
dependency-version: 16.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabotdependabotBot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Mar 14, 2026
@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep As far I understand, this doesn't pose a threat to mapster.

Automapper is now released under a dual license, but since we provide the source code, can we use 16.1.1 without purchasing a license or should we also change the license for benchmark to RPL-1.5?

@andrerav

Copy link
Copy Markdown
Member

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

@stagep

Copy link
Copy Markdown

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

I guess it would cause a Map Overflow exception :)

@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep It looks like the security alert has disappeared. :)
the link no longer leads anywhere

@dependabot@github

dependabotBot commented on behalf of githubMar 16, 2026

Copy link
Copy Markdown
ContributorAuthor

Superseded by #866.

@dependabotdependabotBot closed this Mar 16, 2026
@dependabot
dependabotBot deleted the dependabot/nuget/src/Benchmark/AutoMapper-16.1.1 branch March 16, 2026 13:45
@DocSvartz

DocSvartz commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

mapper for the described case

[TestMethod]
public void Cyrcular()
{
var root = new Circular() { Counter = -1 };
var current = root;
for (int i = 0; i < 30000; i++)
{
current.Self = new Circular() { Counter = i};
current = current.Self;
}
var result = root.AdaptFromCercular();
}
 public class CircularResult
{
public int Counter { get; set; }
public CircularResult Self { get; set; }
}
public class Circular { public int Counter { get; set; }
public Circular Self { get; set; } }
 public static class Helper
{
public static List<Circular> GetNestedObjects(this Circular start)
{
if (start == null || start.Self == null)
return new List<Circular>();
var resultList = new List<Circular>(30000);
var currentObject = start;
resultList.Add(currentObject);
while (currentObject != null && currentObject.Self != start && !resultList.Contains(currentObject.Self))
{
currentObject = currentObject.Self;
resultList.Add(currentObject);
}
return resultList;
}
public static CircularResult AdaptFromCercular(this Circular data)
{
var list = data.GetNestedObjects();
TypeAdapterConfig<Circular, CircularResult>
.NewConfig()
.Ignore(x => x.Self);
var result = list[0].Adapt<CircularResult>();
var current = result;
for (int i = 1; i < list.Count; i++)
{
current.Self = list[i].Adapt<CircularResult>();
current = current.Self;
}
return result;
}
}

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file.NETPull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DocSvartz@andrerav@stagep
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Bump AutoMapper from 13.0.1 to 16.1.1 - #865

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1
Closed

Bump AutoMapper from 13.0.1 to 16.1.1#865
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1

Conversation

@dependabot

@dependabotdependabotBot commented on behalf of githubMar 14, 2026

Copy link
Copy Markdown
Contributor

Updated AutoMapper from 13.0.1 to 16.1.1.

Release notes

Sourced from AutoMapper's releases.

16.1.1

What's Changed

Security

Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.

Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.

Users should upgrade to this release.

Security advisory: GHSA-rvv3-g6hj-g44x

Thanks to @​bluefossa for responsibly disclosing this issue.

Full Changelog: LuckyPennySoftware/AutoMapper@v16.1.0...v16.1.1

16.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v16.0.0...v16.1.0

16.0.0

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0

16.0.0-beta-1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0-beta-1

This release is a beta release that introduces .NET 10 support and package signing. Signed packages means going forward packages can be validated against trusted authorities that the package has been published by Lucky Penny Software and not tampered with.

15.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.1...v15.1.0

15.0.1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.0...v15.0.1

This release supersedes the 15.0.0 release, reverting behavior and overloads so that the AddAutoMapper overloads separate the "scanning for maps" from the "scanning for dependencies". Unfortunately it's not really possible to combine these two together.

This also fixes a critical bug in #​4545 that does not work with .NET 4.x applications (as intended).

Because of this, the 15.0.0 will be delisted because of the breaking changes there.

15.0.0

Full Changelog: LuckyPennySoftware/AutoMapper@v14.0.0...v15.0.0

  • Added support for .NET Standard 2.0
  • Requiring license key
  • Moving from MIT license to dual commercial/OSS license

To set your license key:

services.AddAutoMapper(cfg =>{cfg.LicenseKey="<License key here>";});

This also introduced a breaking change with MapperConfiguration requiring an ILoggerFactory for logging purposes:

publicMapperConfiguration(MapperConfigurationExpression configurationExpression,ILoggerFactory loggerFactory)

Registering AutoMapper with services.AddAutoMapper will automatically supply this parameter. Otherwise you'll need to supply the logger factory.

You can obtain your license key at AutoMapper.io

14.0.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v13.0.1...v14.0.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

---
updated-dependencies:
- dependency-name: AutoMapper
dependency-version: 16.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabotdependabotBot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Mar 14, 2026
@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep As far I understand, this doesn't pose a threat to mapster.

Automapper is now released under a dual license, but since we provide the source code, can we use 16.1.1 without purchasing a license or should we also change the license for benchmark to RPL-1.5?

@andrerav

Copy link
Copy Markdown
Member

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

@stagep

Copy link
Copy Markdown

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

I guess it would cause a Map Overflow exception :)

@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep It looks like the security alert has disappeared. :)
the link no longer leads anywhere

@dependabot@github

dependabotBot commented on behalf of githubMar 16, 2026

Copy link
Copy Markdown
ContributorAuthor

Superseded by #866.

@dependabotdependabotBot closed this Mar 16, 2026
@dependabot
dependabotBot deleted the dependabot/nuget/src/Benchmark/AutoMapper-16.1.1 branch March 16, 2026 13:45
@DocSvartz

DocSvartz commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

mapper for the described case

[TestMethod]
public void Cyrcular()
{
var root = new Circular() { Counter = -1 };
var current = root;
for (int i = 0; i < 30000; i++)
{
current.Self = new Circular() { Counter = i};
current = current.Self;
}
var result = root.AdaptFromCercular();
}
 public class CircularResult
{
public int Counter { get; set; }
public CircularResult Self { get; set; }
}
public class Circular { public int Counter { get; set; }
public Circular Self { get; set; } }
 public static class Helper
{
public static List<Circular> GetNestedObjects(this Circular start)
{
if (start == null || start.Self == null)
return new List<Circular>();
var resultList = new List<Circular>(30000);
var currentObject = start;
resultList.Add(currentObject);
while (currentObject != null && currentObject.Self != start && !resultList.Contains(currentObject.Self))
{
currentObject = currentObject.Self;
resultList.Add(currentObject);
}
return resultList;
}
public static CircularResult AdaptFromCercular(this Circular data)
{
var list = data.GetNestedObjects();
TypeAdapterConfig<Circular, CircularResult>
.NewConfig()
.Ignore(x => x.Self);
var result = list[0].Adapt<CircularResult>();
var current = result;
for (int i = 1; i < list.Count; i++)
{
current.Self = list[i].Adapt<CircularResult>();
current = current.Self;
}
return result;
}
}

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file.NETPull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DocSvartz@andrerav@stagep
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Bump AutoMapper from 13.0.1 to 16.1.1 - #865

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1
Closed

Bump AutoMapper from 13.0.1 to 16.1.1#865
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/Benchmark/AutoMapper-16.1.1

Conversation

@dependabot

@dependabotdependabotBot commented on behalf of githubMar 14, 2026

Copy link
Copy Markdown
Contributor

Updated AutoMapper from 13.0.1 to 16.1.1.

Release notes

Sourced from AutoMapper's releases.

16.1.1

What's Changed

Security

Fixed an issue where certain cyclic or self-referential object graphs could trigger uncontrolled recursion during mapping, potentially resulting in stack exhaustion and denial of service.

Applications that process untrusted or attacker-controlled object graphs through affected mapping paths may be impacted.

Users should upgrade to this release.

Security advisory: GHSA-rvv3-g6hj-g44x

Thanks to @​bluefossa for responsibly disclosing this issue.

Full Changelog: LuckyPennySoftware/AutoMapper@v16.1.0...v16.1.1

16.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v16.0.0...v16.1.0

16.0.0

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0

16.0.0-beta-1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.1.0...v16.0.0-beta-1

This release is a beta release that introduces .NET 10 support and package signing. Signed packages means going forward packages can be validated against trusted authorities that the package has been published by Lucky Penny Software and not tampered with.

15.1.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.1...v15.1.0

15.0.1

What's Changed

Full Changelog: LuckyPennySoftware/AutoMapper@v15.0.0...v15.0.1

This release supersedes the 15.0.0 release, reverting behavior and overloads so that the AddAutoMapper overloads separate the "scanning for maps" from the "scanning for dependencies". Unfortunately it's not really possible to combine these two together.

This also fixes a critical bug in #​4545 that does not work with .NET 4.x applications (as intended).

Because of this, the 15.0.0 will be delisted because of the breaking changes there.

15.0.0

Full Changelog: LuckyPennySoftware/AutoMapper@v14.0.0...v15.0.0

  • Added support for .NET Standard 2.0
  • Requiring license key
  • Moving from MIT license to dual commercial/OSS license

To set your license key:

services.AddAutoMapper(cfg =>{cfg.LicenseKey="<License key here>";});

This also introduced a breaking change with MapperConfiguration requiring an ILoggerFactory for logging purposes:

publicMapperConfiguration(MapperConfigurationExpression configurationExpression,ILoggerFactory loggerFactory)

Registering AutoMapper with services.AddAutoMapper will automatically supply this parameter. Otherwise you'll need to supply the logger factory.

You can obtain your license key at AutoMapper.io

14.0.0

What's Changed

New Contributors

Full Changelog: LuckyPennySoftware/AutoMapper@v13.0.1...v14.0.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

---
updated-dependencies:
- dependency-name: AutoMapper
dependency-version: 16.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
@dependabotdependabotBot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Mar 14, 2026
@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep As far I understand, this doesn't pose a threat to mapster.

Automapper is now released under a dual license, but since we provide the source code, can we use 16.1.1 without purchasing a license or should we also change the license for benchmark to RPL-1.5?

@andrerav

Copy link
Copy Markdown
Member

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

@stagep

Copy link
Copy Markdown

@DocSvartz@stagep In my opinion, this "vulnerability" is a complete joke. It's a recursive mapping with max recursion depth disabled. What would anyone expect to happen? Mapster also has this "vulnerability" if you don't use any of the well-documented mechanisms that can prevent it: https://github.com/MapsterMapper/Mapster/wiki/Object-references

I guess it would cause a Map Overflow exception :)

@DocSvartz

Copy link
Copy Markdown
Contributor

@andrerav@stagep It looks like the security alert has disappeared. :)
the link no longer leads anywhere

@dependabot@github

dependabotBot commented on behalf of githubMar 16, 2026

Copy link
Copy Markdown
ContributorAuthor

Superseded by #866.

@dependabotdependabotBot closed this Mar 16, 2026
@dependabot
dependabotBot deleted the dependabot/nuget/src/Benchmark/AutoMapper-16.1.1 branch March 16, 2026 13:45
@DocSvartz

DocSvartz commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

mapper for the described case

[TestMethod]
public void Cyrcular()
{
var root = new Circular() { Counter = -1 };
var current = root;
for (int i = 0; i < 30000; i++)
{
current.Self = new Circular() { Counter = i};
current = current.Self;
}
var result = root.AdaptFromCercular();
}
 public class CircularResult
{
public int Counter { get; set; }
public CircularResult Self { get; set; }
}
public class Circular { public int Counter { get; set; }
public Circular Self { get; set; } }
 public static class Helper
{
public static List<Circular> GetNestedObjects(this Circular start)
{
if (start == null || start.Self == null)
return new List<Circular>();
var resultList = new List<Circular>(30000);
var currentObject = start;
resultList.Add(currentObject);
while (currentObject != null && currentObject.Self != start && !resultList.Contains(currentObject.Self))
{
currentObject = currentObject.Self;
resultList.Add(currentObject);
}
return resultList;
}
public static CircularResult AdaptFromCercular(this Circular data)
{
var list = data.GetNestedObjects();
TypeAdapterConfig<Circular, CircularResult>
.NewConfig()
.Ignore(x => x.Self);
var result = list[0].Adapt<CircularResult>();
var current = result;
for (int i = 1; i < list.Count; i++)
{
current.Self = list[i].Adapt<CircularResult>();
current = current.Self;
}
return result;
}
}

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependenciesPull requests that update a dependency file.NETPull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@DocSvartz@andrerav@stagep