CVE-2017-11770
High · 7.5CVSS
7.5
EPSS
5.4%
Published
Nov 15, 2017
CISA due date
—
Cloudanix analysis
Attackers can send specially malformed certificate data to vulnerable applications and cause them to stop responding.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
The vulnerability is a remotely triggerable denial-of-service condition caused by improper parsing of malformed certificate data. In affected .NET Core 1.0, 1.1, and 2.0 web applications, unauthenticated network input containing crafted certificate material can cause excessive error handling, process instability, crashes, or service unavailability. The provided affected-product metadata also references mongodb/js-bson and a fixing Git commit; where that mapping applies, consumers should treat vulnerable dependency versions before commit bd61c45157c53a1698ff23770160cf4783e9ea4a as requiring update or replacement.
Why it matters to the business
Successful exploitation can make affected web applications unavailable without requiring credentials, interrupting customer-facing services, APIs, internal applications, or dependent business workflows. The issue is not known to be in CISA KEV, is not flagged for ransomware use, and has no listed public exploit maturity, but it has a network-reachable unauthenticated attack surface and a high availability impact, so internet-facing or business-critical services should still be prioritized for remediation.
How an attack unfolds
An attacker identifies an application path or workflow that causes the server to parse certificate data, such as client-certificate handling, certificate upload/import, authentication middleware, or an API parameter carrying certificate material. The attacker sends malformed or specially crafted certificate data over the network without authenticating. The vulnerable runtime or affected parser mishandles the certificate structure during parsing, which may produce repeated exceptions, crash the application process, trigger worker recycling, or consume resources. By repeating the request or coordinating multiple sources, the attacker can sustain service disruption until the vulnerable runtime, library, or application component is patched or protected.
How to fix it
Upgrade affected .NET Core applications to a supported, patched runtime; .NET Core 1.0, 1.1, and 2.0 are end-of-life and should be replaced with a currently supported .NET release. Rebuild and redeploy applications against the patched runtime and verify all hosting images, containers, build agents, and runtime bundles are updated. If inventory identifies mongodb/js-bson as the affected package in this finding, update to commit bd61c45157c53a1698ff23770160cf4783e9ea4a or a later release containing that fix. As compensating controls, restrict unauthenticated certificate-processing endpoints, enforce strict input size and format limits, reject invalid certificate encodings before deeper parsing, add rate limiting, and isolate high-risk parsing workflows from critical application processes.
How to confirm the fix worked
Confirm runtime and dependency inventory no longer includes .NET Core 1.0, 1.1, or 2.0, and confirm any mapped mongodb/js-bson dependency is at or after commit bd61c45157c53a1698ff23770160cf4783e9ea4a. Validate container images and deployment artifacts, not just source repositories. Review package manifests, lockfiles, SBOMs, runtime banners, and host-level dotnet --info output where available. Perform controlled negative testing with malformed certificate inputs in a non-production environment and verify the application returns a safe validation error without crashing, recycling, or materially increasing CPU or memory use. Monitor after deployment for disappearance of certificate parsing exceptions and application crash/restart events associated with malformed requests.
Typical attack path
- Discover a web application or API running an affected .NET Core 1.0, 1.1, or 2.0 stack, or an application dependency mapped to the vulnerable component.
- Identify endpoints or request flows that accept, forward, or parse certificate data.
- Send malformed certificate content in a request body, header, file upload, or protocol field that reaches the vulnerable parser.
- Trigger parser failure, unhandled exception, process crash, worker recycle, or resource exhaustion.
- Repeat the malformed requests to keep the service degraded or unavailable.
How to detect it
Look for evidence of repeated malformed certificate parsing immediately preceding service degradation, process crashes, or application restarts. Useful sources include application logs, ASP.NET Core/Kestrel logs, reverse proxy and load balancer logs, web access logs, Windows Application Event Logs, Linux syslog/journald, container runtime logs, Kubernetes restart events, crash dumps, and APM traces. Hunt for unauthenticated requests to endpoints related to authentication, certificate upload/import, enrollment, mutual TLS, API gateways, or identity flows, especially when followed by HTTP 500 responses, connection resets, worker process recycling, dotnet process termination, coredumps, or elevated CPU/memory. Because this is a denial-of-service flaw, indicators are primarily behavioral: bursts of malformed requests from one or more sources, certificate/ASN.1 parsing exceptions, and correlated availability events. No named threat actors or ransomware campaigns are provided for this issue, and it is not listed in KEV, so detection should focus on generic abuse patterns rather than actor-specific infrastructure.
- System.Security.Cryptography.CryptographicException
- System.Security.Cryptography.X509Certificates
- X509Certificate2
- ASN1 corrupted data
- ASN1 bad tag value met
- Cannot find the requested object
- Microsoft.AspNetCore.Server.Kestrel
- Faulting application name: dotnet.exe
- Application: dotnet.exe
- dotnet.exe
- core dumped
- Segmentation fault
- OutOfMemoryException
- StackOverflowException
- HTTP 500
- connection reset by peer
- CrashLoopBackOff
- Back-off restarting failed container
What your security team should do
- Prioritize internet-facing and unauthenticated applications that parse client certificates, uploaded certificates, or certificate-like request data.
- Remove or upgrade all .NET Core 1.0, 1.1, and 2.0 runtimes because they are end-of-life and may contain multiple unresolved security issues.
- If dependency scanning maps exposure to mongodb/js-bson, update to commit bd61c45157c53a1698ff23770160cf4783e9ea4a or later and regenerate lockfiles/SBOMs.
- Add rate limiting, request body size limits, and strict allow-list validation for endpoints that accept certificate material.
- Create detections for bursts of certificate parsing errors followed by dotnet process crashes, worker recycling, HTTP 500 spikes, or service restarts.
- Review historical logs for exploitation attempts, especially against authentication, certificate enrollment, upload, import, and API gateway paths.
- Document the finding as availability-impacting rather than data-theft-oriented; response should focus on service resilience, patching, and abuse prevention.
The record
.NET Core 1.0, 1.1, and 2.0 allow an unauthenticated attacker to remotely cause a denial of service attack against a .NET Core web application by improperly parsing certificate data. A denial of service vulnerability exists when .NET Core improperly handles parsing certificate data, aka ".NET CORE Denial Of Service Vulnerability".
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| NuGet | Microsoft.NETCore.App | 1.0.0 | 2.0.3 |
| NuGet | System.Security.Cryptography.X509Certificates | 4.0.0 | 4.1.2 |
| Red Hat:rhel_dotnet:1.0::el7 | rh-dotnetcore10-dotnetcore | 0 | 0:1.0.8-1.el7 |
| Red Hat:rhel_dotnet:1.0::el7 | rh-dotnetcore10-dotnetcore-debuginfo | 0 | 0:1.0.8-1.el7 |
| Red Hat:rhel_dotnet:1.1::el7 | rh-dotnetcore11-dotnetcore | 0 | 0:1.1.5-1.el7 |
| Red Hat:rhel_dotnet:1.1::el7 | rh-dotnetcore11-dotnetcore-debuginfo | 0 | 0:1.1.5-1.el7 |
| Red Hat:rhel_dotnet:2.0::el7 | rh-dotnet20-dotnet | 0 | 0:2.0.3-4.el7 |
| Red Hat:rhel_dotnet:2.0::el7 | rh-dotnet20-dotnet-debuginfo | 0 | 0:2.0.3-4.el7 |
| Red Hat:rhel_dotnet:2.0::el7 | rh-dotnet20-dotnet-host | 0 | 0:2.0.3-4.el7 |
| Red Hat:rhel_dotnet:2.0::el7 | rh-dotnet20-dotnet-runtime-2.0 | 0 | 0:2.0.3-4.el7 |
| Red Hat:rhel_dotnet:2.0::el7 | rh-dotnet20-dotnet-sdk-2.0 | 0 | 0:2.0.3-4.el7 |
| nuget | Microsoft.NETCore.App | 1.0.0 | 2.0.3 |
| nuget | System.Security.Cryptography.X509Certificates | 4.0.0 | 4.1.2 |
Related vulnerabilities
- CVE-2017-8585 Microsoft .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7 allow an attacker to send specially… Also affects Microsoft.NETCore.App
- CVE-2026-96375 Improper Certificate Validation vulnerability in Drupal Cloud allows Adversary in the… CWE-295
- CVE-2026-87944 Improper Certificate Validation vulnerability in Drupal SAML SSO - Service Provider… CWE-295
- CVE-2026-114642 Traefik 2.11.0 before 2.11.58 and 3.0.0 before 3.7.14 stores its NTLM/Kerberos backend… CWE-295
- CVE-2026-114406 The system certificate authority (CA) store in Red Hat products, distributed via… CWE-295
- CVE-2026-95210 Improper certificate validation in gnutls v3.8.13 causes the application to accept… CWE-295
- CVE-2026-97687 urllib3 is an HTTP client library for Python. CWE-295
- CVE-2026-101916 @grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a… CWE-295