CVE-2026-48509: MessagePack-CSharp: ASP.NET Core MessagePackInputFormatter defaults to TrustedData for HTTP request bodies

Published Jun 22, 2026
·
Updated

Summary

The parameterless MessagePackInputFormatter() constructor uses default serializer options, which resolve to MessagePackSerializerOptions.Standard with MessagePackSecurity.TrustedData. The formatter is designed for ASP.NET Core MVC request bodies, which commonly cross an HTTP trust boundary.

This insecure default can expose applications to denial-of-service attacks that MessagePackSecurity.UntrustedData is intended to mitigate, such as hash-collision attacks against dictionary-like model properties.

Impact

Applications are affected when they register new MessagePackInputFormatter() without explicitly passing serializer options configured for untrusted data.

An unauthenticated or otherwise untrusted HTTP client can send MessagePack request bodies that are deserialized using the trusted-data posture. For models containing hash-based collections, this can enable algorithmic complexity attacks using colliding keys. The default constructor makes the unsafe posture easy to use at the exact boundary where request bodies should be treated as untrusted.

Affected components

- Package: MessagePack.AspNetCoreMvcFormatter - API: MessagePackInputFormatter() parameterless constructor - Scenario: ASP.NET Core MVC model binding from HTTP request bodies - Finding IDs: MESSAGEPACKCSHARP-OPEN-009, duplicate MESSAGEPACKCSHARP-095

Patches

Fixes are prepared and will be released in coordinated patch versions.

Upgrade guidance:

1. Upgrade MessagePack.AspNetCoreMvcFormatter to the patched version for your release line. 2. Upgrade companion MessagePack packages in the same dependency graph to the coordinated patched versions.

The fix should default the parameterless constructor to MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData), or require callers to pass explicit options so the trust posture is deliberate.

Workarounds

Do not use the parameterless constructor on affected versions. Register the formatter with explicit untrusted-data options, for example:

csharp options.InputFormatters.Add( new MessagePackInputFormatter( MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData)));

Also apply normal HTTP request-size limits and model validation appropriate for your service.

Resources

- MESSAGEPACKCSHARP-OPEN-009: MVC input formatter defaults to trusted-data security posture - MESSAGEPACKCSHARP-095: duplicate finding for the same root cause - CWE-1188: Initialization of a Resource with an Insecure Default

Other sources

MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, the parameterless MessagePackInputFormatter() constructor uses default serializer options, which resolve to MessagePackSerializerOptions.Standard with MessagePackSecurity.TrustedData. The formatter is designed for ASP.NET Core MVC request bodies, which commonly cross an HTTP trust boundary. This insecure default can expose applications to denial-of-service attacks that MessagePackSecurity.UntrustedData is intended to mitigate, such as hash-collision attacks against dictionary-like model properties. This vulnerability is fixed in 2.5.301 and 3.1.7.

MITRE

Affected Software

5 affected componentsFixes available
nuget/MessagePack<2.5.301, <3.1.7
MessagePack Messagepack C\#<2.5.301
MessagePack Messagepack C\#>=3.0.3<3.1.7
nuget/MessagePack>=3.0<3.1.7
3.1.7
nuget/MessagePack<2.5.301
2.5.301

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade nuget/MessagePack to a version that resolves this vulnerability.

    Fixed in 3.1.7
  2. Upgrade

    Upgrade nuget/MessagePack to a version that resolves this vulnerability.

    Fixed in 2.5.301
  3. Upgrade

    Upgrade MessagePack.AspNetCoreMvcFormatter to a version that resolves this vulnerability.

    Fixed in 2.5.301
  4. Upgrade

    Upgrade MessagePack.AspNetCoreMvcFormatter to a version that resolves this vulnerability.

    Fixed in 3.1.7
  5. Configuration

    Do not register `new MessagePackInputFormatter()` (parameterless constructor). Register the formatter with explicit untrusted-data options, e.g., `MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData)`.

    ASP.NET Core MVC (MessagePackInputFormatter) MessagePackInputFormatter() constructor usage / serializer options security posture = Use explicit MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData) instead of the parameterless constructor
  6. Compensating control

    Also apply normal HTTP request-size limits and model validation appropriate for your service.

Event History

Jun 22, 2026
CVE Published
via MITRE·09:16 PM
Data Sourced
via MITRE·09:16 PM
DescriptionWeakness
Data Sourced
via NVD·10:16 PM
DescriptionSeverityWeaknessAffected Software
Jun 25, 2026
Advisory Published
via GitHub·06:52 PM
Data Sourced
via GitHub·06:52 PM
DescriptionWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-48509?

CVE-2026-48509 has a risk rating of 29.

2

What could be the impact of CVE-2026-48509?

CVE-2026-48509 may lead to security vulnerabilities due to improper handling of HTTP request bodies.

3

How do I fix CVE-2026-48509?

To fix CVE-2026-48509, upgrade to MessagePack for C# version 2.5.301 or 3.1.7 or later.

4

Which software is affected by CVE-2026-48509?

CVE-2026-48509 affects the MessagePack for C# library used in ASP.NET Core applications.

5

What is the default behavior of MessagePackInputFormatter prior to the fix for CVE-2026-48509?

Prior to the fix, the default constructor of MessagePackInputFormatter uses MessagePackSecurity.TrustedData, which may pose security risks.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203