CVE-2016-7099
Medium · 5.9CVSS
5.9
EPSS
2.8%
Published
Oct 10, 2016
CISA due date
—
Cloudanix analysis
A flaw in older Node.js versions could let attackers pretend to be trusted servers and secretly read or change information sent over secure connections.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The tls.checkServerIdentity function fails to correctly validate wildcards in X.509 certificate name fields, permitting spoofed server identities during TLS handshakes.
Why it matters to the business
Organizations running affected Node.js versions face risk of encrypted traffic interception, which can expose sensitive data in transit and undermine trust in secure communications.
How an attack unfolds
An attacker intercepts network traffic to a Node.js application, supplies a crafted X.509 certificate containing a malicious wildcard pattern, and exploits the improper validation to impersonate a legitimate server and decrypt or modify the session.
How to fix it
Upgrade Node.js to 0.10.47, 0.12.16, 4.6.0, 6.7.0 or newer; apply the patch from commit 743f0c916469f3129dfae406fa104dc46782e20b in the nodejs/node repository.
How to confirm the fix worked
Confirm the installed Node.js version meets or exceeds the fixed releases and execute test cases that exercise wildcard certificate validation against known-good and malicious patterns.
Typical attack path
- Position as a network intermediary to observe TLS connections
- Generate a certificate with a wildcard that bypasses the flawed identity check
- Present the certificate during the TLS handshake
- Complete the connection as the spoofed server
- Decrypt or manipulate application data in transit
How to detect it
Review application and TLS library logs for unexpected successful handshakes with non-standard certificate subjects; search network flow data for connections that bypass expected server identity checks.
What your security team should do
- Immediately update all Node.js deployments to the fixed versions listed in remediation guidance
- Audit TLS client code that relies on checkServerIdentity for any custom overrides
- Reissue or rotate any long-lived credentials transmitted over previously vulnerable connections
The record
The tls.checkServerIdentity function in Node.js 0.10.x before 0.10.47, 0.12.x before 0.12.16, 4.x before 4.6.0, and 6.x before 6.7.0 does not properly handle wildcards in name fields of X.509 certificates, which allows man-in-the-middle attackers to spoof servers via a crafted certificate.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | nodejs | 0 | 4.6.0~dfsg-1 |
| Debian:11 | nodejs | 0 | 4.6.0~dfsg-1 |
| Debian:12 | nodejs | 0 | 4.6.0~dfsg-1 |
| Debian:13 | nodejs | 0 | 4.6.0~dfsg-1 |
| Mageia:5 | nodejs | 0 | 0.10.48-1.mga5 |
| Red Hat:rhel_software_collections:2::el6 | rh-nodejs4-http-parser | 0 | 0:2.7.0-2.el6 |
| Red Hat:rhel_software_collections:2::el6 | rh-nodejs4-http-parser-debuginfo | 0 | 0:2.7.0-2.el6 |
| Red Hat:rhel_software_collections:2::el6 | rh-nodejs4-http-parser-devel | 0 | 0:2.7.0-2.el6 |
| Red Hat:rhel_software_collections:2::el6 | rh-nodejs4-nodejs | 0 | 0:4.6.2-4.el6 |
| Red Hat:rhel_software_collections:2::el6 | rh-nodejs4-nodejs-debuginfo | 0 | 0:4.6.2-4.el6 |
| Red Hat:rhel_software_collections:2::el6 | rh-nodejs4-nodejs-devel | 0 | 0:4.6.2-4.el6 |
| Red Hat:rhel_software_collections:2::el6 | rh-nodejs4-nodejs-docs | 0 | 0:4.6.2-4.el6 |
| Red Hat:rhel_software_collections:2::el7 | rh-nodejs4-http-parser | 0 | 0:2.7.0-2.el7 |
| Red Hat:rhel_software_collections:2::el7 | rh-nodejs4-http-parser-debuginfo | 0 | 0:2.7.0-2.el7 |
| Red Hat:rhel_software_collections:2::el7 | rh-nodejs4-http-parser-devel | 0 | 0:2.7.0-2.el7 |
| Red Hat:rhel_software_collections:2::el7 | rh-nodejs4-nodejs | 0 | 0:4.6.2-4.el7 |
| Red Hat:rhel_software_collections:2::el7 | rh-nodejs4-nodejs-debuginfo | 0 | 0:4.6.2-4.el7 |
| Red Hat:rhel_software_collections:2::el7 | rh-nodejs4-nodejs-devel | 0 | 0:4.6.2-4.el7 |
| Red Hat:rhel_software_collections:2::el7 | rh-nodejs4-nodejs-docs | 0 | 0:4.6.2-4.el7 |
| SUSE:Linux Enterprise Module for Web and Scripting 12 | nodejs4 | 0 | 4.6.0-8.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox | 0 | 68.2.0-78.51.4 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | MozillaFirefox-branding-SLED | 0 | 68-21.9.8 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-atk | 0 | 2.26.1-2.8.4 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-cairo | 0 | 1.15.10-2.13.4 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-gdk-pixbuf | 0 | 2.36.11-2.8.4 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-glib2 | 0 | 2.54.3-2.14.7 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-gtk3 | 0 | 3.10.9-2.15.3 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-harfbuzz | 0 | 1.7.5-2.7.4 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-libffi | 0 | 3.2.1.git259-2.3.3 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-libffi-gcc5 | 0 | 5.3.1+r233831-14.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | firefox-pango | 0 | 1.40.14-2.7.4 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | mozilla-nspr | 0 | 4.21-29.6.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | mozilla-nss | 0 | 3.45-38.9.3 |
| Ubuntu:18.04:LTS | nodejs | 0 | 8.10.0~dfsg-2 |
| Ubuntu:Pro:14.04:LTS | nodejs | 0 | 0.10.25~dfsg2-2ubuntu1.2+esm1 |
| Ubuntu:Pro:16.04:LTS | nodejs | 0 | 4.2.6~dfsg-1ubuntu4.2+esm1 |
| Ubuntu:Pro:18.04:LTS | nodejs | 0 | 8.10.0~dfsg-2ubuntu0.4+esm1 |
Related vulnerabilities
- CVE-2023-46809 Node.js versions which bundle an unpatched version of OpenSSL or run against a… Also affects nodejs
- CVE-2024-22025 A vulnerability in Node.js has been identified, allowing for a Denial of Service (DoS)… Also affects nodejs
- CVE-2013-4450 The HTTP server in Node.js 0.10.x before 0.10.21 and 0.8.x before 0.8.26 allows remote… Also affects nodejs
- CVE-2025-23085 A memory leak could occur when a remote peer abruptly closes the socket without sending a… Also affects nodejs
- CVE-2025-23083 With the aid of the diagnostics_channel utility, an event can be hooked into whenever a… Also affects nodejs
- CVE-2024-27982 The team has identified a critical vulnerability in the http server of the most recent… Also affects nodejs
- CVE-2024-27983 An attacker can make the Node.js HTTP/2 server completely unavailable by sending a small… Also affects nodejs
- CVE-2024-22019 A vulnerability in Node.js HTTP servers allows an attacker to send a specially crafted… Also affects nodejs