First published: Tue Jun 06 2023(Updated: )
.NET Kestrel: Denial of Service processing X509 Certificates When a .NET application is internet-facing and accepts an X509 client certificate for mutual TLS, a malicious client certificate can cause unbounded CPU usage.
Credit: secure@microsoft.com secure@microsoft.com secure@microsoft.com
Affected Software | Affected Version | How to fix |
---|---|---|
Microsoft Visual Studio 2022 | =17.6 | |
Microsoft .NET 7.0 | ||
Microsoft .NET 6.0 | ||
Microsoft Visual Studio 2022 | =17.0 | |
Microsoft Visual Studio 2022 | =17.2 | |
nuget/Microsoft.NetCore.App.Runtime.win-x86 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.win-x86 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.win-x64 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.win-x64 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.win-arm64 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.win-arm64 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.win-arm | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.win-arm | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.osx-x64 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.osx-x64 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.osx-arm64 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.osx-arm64 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.linux-x64 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.linux-x64 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.linux-musl-x64 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.linux-musl-x64 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.linux-musl-arm64 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.linux-musl-arm64 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.linux-musl-arm | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.linux-musl-arm | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.linux-arm64 | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/Microsoft.NetCore.App.Runtime.linux-arm64 | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.linux-arm | >=6.0.0<=6.0.16 | 6.0.18 |
nuget/Microsoft.NetCore.App.Runtime.linux-arm | >=7.0.0<=7.0.5 | 7.0.7 |
nuget/System.Security.Cryptography.Pkcs | >=6.0.0<=6.0.2 | 6.0.3 |
nuget/System.Security.Cryptography.Pkcs | >=7.0.0<=7.0.1 | 7.0.2 |
nuget/Microsoft.Windows.Compatibility | >=6.0.0<=6.0.4 | 6.0.6 |
nuget/Microsoft.Windows.Compatibility | >=7.0.0<=7.0.1 | 7.0.3 |
Microsoft PowerShell Core | ||
Microsoft PowerShell Core | ||
All of | ||
Any of | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows Server 2008 Itanium | =r2-sp1 | |
Microsoft Windows Server 2012 x64 | ||
Microsoft Windows Server 2012 x64 | =r2 | |
Microsoft Windows Server 2016 | ||
Microsoft .NET Framework | =4.8 | |
All of | ||
Any of | ||
Microsoft Windows Server 2008 Itanium | =r2-sp1 | |
Microsoft Windows Server 2012 x64 | ||
Microsoft Windows Server 2012 x64 | =r2 | |
Any of | ||
Microsoft .NET Framework | =4.6.2 | |
Microsoft .NET Framework | =4.7 | |
Microsoft .NET Framework | =4.7.1 | |
Microsoft .NET Framework | =4.7.2 | |
All of | ||
Any of | ||
Microsoft Windows Server 2008 Itanium | =sp2 | |
Microsoft Windows Server 2008 Itanium | =sp2 | |
Microsoft Windows Server 2012 x64 | ||
Microsoft Windows Server 2012 x64 | =r2 | |
Microsoft .NET Framework | =4.6.2 | |
All of | ||
Microsoft Windows Server 2008 Itanium | =r2-sp1 | |
Microsoft .NET Framework | =3.5.1 | |
All of | ||
Any of | ||
Microsoft Windows 10 1507 | ||
Microsoft Windows 10 1507 | ||
Any of | ||
Microsoft .NET Framework | =3.5 | |
Microsoft .NET Framework | =4.6.2 | |
All of | ||
Any of | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 11 21h2 | ||
Microsoft Windows 11 21h2 | ||
Microsoft Windows 11 22h2 | ||
Microsoft Windows 11 22h2 | ||
Microsoft Windows Server 2022 | ||
Any of | ||
Microsoft .NET Framework | =3.5 | |
Microsoft .NET Framework | =4.8.1 | |
All of | ||
Any of | ||
Microsoft .NET Framework | =3.5 | |
Microsoft .NET Framework | =4.8 | |
Any of | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows 10 1809 | ||
Microsoft Windows 10 1809 | ||
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 11 21h2 | ||
Microsoft Windows 11 21h2 | ||
Microsoft Windows 11 22h2 | ||
Microsoft Windows 11 22h2 | ||
Microsoft Windows Server 2019 | ||
Microsoft Windows Server 2022 | ||
All of | ||
Any of | ||
Microsoft .NET Framework | =3.5 | |
Microsoft .NET Framework | =4.7.2 | |
Any of | ||
Microsoft Windows 10 1809 | ||
Microsoft Windows 10 1809 | ||
Microsoft Windows Server 2019 | ||
All of | ||
Any of | ||
Microsoft .NET Framework | =3.5 | |
Microsoft .NET Framework | =4.6.2 | |
Microsoft .NET Framework | =4.7 | |
Microsoft .NET Framework | =4.7.1 | |
Microsoft .NET Framework | =4.7.2 | |
Any of | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows Server 2016 | ||
All of | ||
Microsoft .NET Framework | =3.5 | |
Any of | ||
Microsoft Windows Server 2012 x64 | ||
Microsoft Windows Server 2012 x64 | =r2 | |
All of | ||
Microsoft .NET Framework | =3.0-sp2 | |
Any of | ||
Microsoft Windows Server 2008 Itanium | =sp2 | |
Microsoft Windows Server 2008 Itanium | =sp2 | |
All of | ||
Microsoft .NET Framework | =2.0-sp2 | |
Any of | ||
Microsoft Windows Server 2008 Itanium | =sp2 | |
Microsoft Windows Server 2008 Itanium | =sp2 | |
Microsoft .NET Framework | =6.0.0 | |
Microsoft .NET Framework | =7.0.0 | |
Microsoft .NET Framework | =3.5.1 | |
Microsoft .NET Framework | =4.6.2 | |
Microsoft .NET Framework | =3.0 | |
Microsoft .NET Framework | =2.0 | |
Microsoft .NET Framework | =4.6.2=4.7=4.7.1=4.7.2 | |
Microsoft .NET Framework | =3.0 | |
Microsoft .NET Framework | =2.0 | |
Microsoft .NET Framework | =4.8 | |
Microsoft .NET Framework | =4.8 | |
Microsoft .NET Framework | =4.6.2=4.7=4.7.1=4.7.2 | |
Microsoft .NET Framework | =4.8 | |
Microsoft .NET Framework | =3.5 | |
Microsoft .NET Framework | =4.6.2=4.7=4.7.1=4.7.2 | |
Microsoft .NET Framework | =3.5 | |
Microsoft .NET Framework | =3.5=4.8 | |
Microsoft .NET Framework | =3.5=4.7.2 | |
Microsoft .NET Framework | =4.8 | |
Microsoft .NET Framework | =3.5=4.6.2=4.7=4.7.1=4.7.2 | |
Microsoft .NET Framework | =3.5=4.7.2 | |
Microsoft .NET Framework | =3.5=4.8 | |
Microsoft .NET Framework | =3.5=4.8 | |
Microsoft .NET Framework | =3.5=4.8 | |
Microsoft .NET Framework | =3.5=4.8.1 | |
Microsoft .NET Framework | =3.5=4.8.1 | |
Microsoft .NET Framework | =3.5=4.8.1 | |
Microsoft .NET Framework | =3.5=4.8.1 | |
Microsoft .NET Framework | =3.5=4.8.1 | |
Microsoft .NET Framework | =4.8 | |
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows 10 Version 1607 x86 | ||
Microsoft Windows Server 2008 Itanium | =r2-sp1 | |
Microsoft Windows Server 2012 x64 | ||
Microsoft Windows Server 2012 x64 | =r2 | |
Microsoft Windows Server 2016 | ||
Microsoft .NET Framework | =4.6.2 | |
Microsoft .NET Framework | =4.7 | |
Microsoft .NET Framework | =4.7.1 | |
Microsoft .NET Framework | =4.7.2 | |
Microsoft Windows Server 2008 Itanium | =sp2 | |
Microsoft Windows Server 2008 Itanium | =sp2 | |
Microsoft .NET Framework | =3.5.1 | |
Microsoft .NET Framework | =3.5 | |
Microsoft Windows 10 1507 | ||
Microsoft Windows 10 1507 | ||
Microsoft .NET Framework | =4.8.1 | |
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 21h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 10 22h2 | ||
Microsoft Windows 11 21h2 | ||
Microsoft Windows 11 21h2 | ||
Microsoft Windows 11 22h2 | ||
Microsoft Windows 11 22h2 | ||
Microsoft Windows Server 2022 | ||
Microsoft Windows 10 1809 | ||
Microsoft Windows 10 1809 | ||
Microsoft Windows Server 2019 | ||
Microsoft .NET Framework | =3.0-sp2 | |
Microsoft .NET Framework | =2.0-sp2 | |
Microsoft .NET Framework | =3.5 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2023-29331 has a severity rating that could lead to unbounded CPU usage due to a Denial of Service vulnerability in .NET applications using X509 certificates.
To fix CVE-2023-29331, update to the latest versions of affected products such as .NET 7.0 or .NET 6.0 following Microsoft's security guidelines.
CVE-2023-29331 affects .NET 6.0 and .NET 7.0, including various versions of Visual Studio 2022.
Yes, CVE-2023-29331 can be exploited remotely when a malicious client presents an X509 certificate to an internet-facing .NET application.
Developers should ensure they are implementing proper validation of client certificates and promptly apply patches or updates from Microsoft.