Skip to main content

CVE-2021-22939: Improper Certificate Validation (CWE-295) in NodeJS Node

High
VulnerabilityCVE-2021-22939cvecve-2021-22939cwe-295
Published: Mon Aug 16 2021 (08/16/2021, 00:00:00 UTC)
Source: CVE
Vendor/Project: NodeJS
Product: Node

Description

If the Node.js https API was used incorrectly and "undefined" was in passed for the "rejectUnauthorized" parameter, no error was returned and connections to servers with an expired certificate would have been accepted.

AI-Powered Analysis

AILast updated: 06/25/2025, 14:33:07 UTC

Technical Analysis

CVE-2021-22939 is a vulnerability in the Node.js platform affecting versions 4.0 through 16.0. The issue arises from improper certificate validation within the Node.js https API when the "rejectUnauthorized" parameter is incorrectly set to "undefined". In this scenario, the API fails to return an error and instead accepts connections to servers presenting expired TLS/SSL certificates. This behavior constitutes a CWE-295 (Improper Certificate Validation) vulnerability. Normally, the "rejectUnauthorized" flag is used to enforce strict validation of server certificates during HTTPS connections, preventing man-in-the-middle (MITM) attacks and ensuring secure communication. However, due to this flaw, applications relying on Node.js for HTTPS requests may inadvertently trust servers with invalid or expired certificates if the parameter is mishandled, potentially exposing sensitive data or allowing attackers to intercept or manipulate traffic. The vulnerability does not require user interaction or authentication to be exploited, but it depends on the application developer's incorrect use of the API. No known exploits have been reported in the wild as of the publication date. No official patch links are provided, but the issue was publicly disclosed on August 16, 2021. The vulnerability impacts a broad range of Node.js versions, many of which are widely used in server-side JavaScript applications, including web services, APIs, and cloud-native applications.

Potential Impact

For European organizations, this vulnerability poses a significant risk to the confidentiality and integrity of data transmitted over HTTPS when using affected Node.js versions. Organizations relying on Node.js for backend services, microservices, or API integrations may unknowingly accept expired or invalid certificates, enabling attackers to perform man-in-the-middle attacks, intercept sensitive information, or inject malicious content. This is particularly critical for sectors handling sensitive personal data (e.g., finance, healthcare, government) under strict data protection regulations such as GDPR. The vulnerability could undermine trust in secure communications, potentially leading to data breaches or regulatory non-compliance. Additionally, the widespread use of Node.js in European startups and enterprises increases the attack surface. Although no known exploits exist, the ease of exploitation through incorrect API usage means that poorly developed or legacy applications are at risk. The vulnerability could also affect supply chain security if third-party Node.js modules or services are impacted. Overall, the threat could disrupt service integrity and confidentiality, with potential reputational and financial consequences.

Mitigation Recommendations

To mitigate this vulnerability, European organizations should: 1) Audit all Node.js applications to identify usage of the https API, specifically checking how the "rejectUnauthorized" parameter is set. 2) Ensure that the parameter is explicitly set to a boolean value (true or false) rather than undefined or omitted, to enforce proper certificate validation. 3) Upgrade Node.js to versions beyond 16.0 where this issue is resolved or apply any available patches from the Node.js maintainers. 4) Implement strict code review and static analysis to detect improper API usage related to TLS/SSL validation. 5) Employ runtime monitoring and logging to detect connections to servers with expired or invalid certificates. 6) Use additional security layers such as TLS interception detection tools and network-level protections to identify suspicious HTTPS traffic. 7) Educate developers on secure usage of cryptographic APIs and the importance of certificate validation. 8) For critical systems, consider deploying Web Application Firewalls (WAFs) or Intrusion Detection Systems (IDS) configured to flag anomalous HTTPS connections. These steps go beyond generic advice by focusing on code-level validation, developer training, and runtime detection tailored to this specific vulnerability.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
hackerone
Date Reserved
2021-01-06T00:00:00
Cisa Enriched
false
Cvss Version
null
State
PUBLISHED

Threat ID: 682d983ac4522896dcbed45b

Added to database: 5/21/2025, 9:09:14 AM

Last enriched: 6/25/2025, 2:33:07 PM

Last updated: 8/8/2025, 7:11:09 PM

Views: 14

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats