CVE-2026-57108

Access of Resource Using Incompatible Type ('Type Confusion')
Affects
.NET
in
.NET
No items found.
Versions
>= 6.0.0 <= 6.0.42
Exclamation circle icon
Patch Available

This Vulnerability has been fixed in the Never-Ending Support (NES) version offered by HeroDevs.

Overview

.NET is a free, open-source, cross-platform framework for building modern apps and powerful cloud services. It consists of a runtime and a developer platform made up of tools, programming languages, and libraries for building many different types of applications.

A denial of service vulnerability (CVE-2026-57108) has been identified in .NET's X.509 certificate name parsing on Unix (the native OpenSSL platform abstraction layer), which allows attackers to crash an application that reads a UPN (User Principal Name) from an attacker-supplied certificate. Windows, which uses the CNG cryptography backend, is not affected.

Per CWE-843: Access of Resource Using Incompatible Type ('Type Confusion'),  type confusion occurs when a product allocates or initializes a resource such as a pointer, object, or variable using one type, but later accesses that resource using a type that is incompatible with the original type.

This issue affects multiple versions of .NET, including the End-of-Life .NET 6.0 line covered by NES.

Details

Module Info

Vulnerability Info

This High-severity vulnerability is found in the native OpenSSL platform abstraction layer of the Microsoft.NETCore.App shared framework (the System.Security.Cryptography.Native shim) on Linux and macOS. When resolving a UPN from a certificate's subjectAltName otherName entry, the native CryptoNative_GetX509NameInfo function reads the otherName value, an ASN1_TYPE tagged union, as a string after only a NULL check:

// OTHERNAME->ASN1_TYPE->union.field
if (!value->value)
{
    return NULL;
}

str = value->value->value.asn1_string;

value->value is an ASN1_TYPE whose active union member depends on its type tag. The code assumes a string type and reads value.asn1_string, but a crafted certificate can carry a UPN otherName whose value has a non-string ASN.1 type (for example V_ASN1_BOOLEAN, whose union member is an int). In that case a small integer is reinterpreted as an ASN1_STRING pointer and later dereferenced when the name is printed, causing a type-confusion crash. The value is reached whenever an application calls X509Certificate2.GetNameInfo(X509NameType.UpnName, ...) on an attacker-supplied certificate, such as a client certificate presented during mutual TLS or any certificate-to-identity mapping over untrusted input. Every .NET 6 application on Linux or macOS that inspects UPN names on untrusted certificates is exposed.

This vulnerability has been present since at least .NET 6.0 and likely earlier.

Mitigation

.NET 6 is End-of-Life and will not receive any updates to address this issue. For more information see .NET and .NET Core official support policy.

Users of the affected components should apply one of the following mitigations:

  • Upgrade affected applications to one of:
    •  .NET Runtime >= 8.0.29
    •  .NET Runtime >= 9.0.18
    • .NET Runtime >= 10.0.10
  • Leverage a commercial support partner like HeroDevs for post-EOL security support, including NES for .NET 6.0.43 or later.

Credits

Microsoft did not publicly credit an individual finder for this vulnerability in its security advisory.

Vulnerability Details
Severity
Level
CVSS Assessment
Low
>=0 <4
Medium
>=4 <6
High
>=6 <8
Critical
>=8 <10
High
ID
CVE-2026-57108
PROJECT Affected
.NET
Versions Affected
>= 6.0.0 <= 6.0.42
NES Versions Affected
Published date
August 3, 2026
≈ Fix date
July 16, 2026
Fixed in
Category
Access of Resource Using Incompatible Type ('Type Confusion')
Vex Document
Download VEXHow do I use it?
Sign up for the latest vulnerability alerts fixed in
NES for .NET
Rss feed icon
Subscribe via RSS
or

By submitting the form I acknowledge receipt of our Privacy Policy.

Thanks for signing up for our Newsletter! We look forward to connecting with you.
Oops! Something went wrong while submitting the form.