CVE Vulnerabilities

CVE-2021-22884

Reliance on Reverse DNS Resolution for a Security-Critical Action

Published: Mar 03, 2021 | Modified: Nov 21, 2024
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
CVSS 2.x
5.1 MEDIUM
AV:N/AC:H/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
7.5 MODERATE
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
Ubuntu
MEDIUM

Node.js before 10.24.0, 12.21.0, 14.16.0, and 15.10.0 is vulnerable to DNS rebinding attacks as the whitelist includes “localhost6”. When “localhost6” is not present in /etc/hosts, it is just an ordinary domain that is resolved via DNS, i.e., over network. If the attacker controls the victims DNS server or can spoof its responses, the DNS rebinding protection can be bypassed by using the “localhost6” domain. As long as the attacker uses the “localhost6” domain, they can still apply the attack described in CVE-2018-7160.

Weakness

The product performs reverse DNS resolution on an IP address to obtain the hostname and make a security decision, but it does not properly ensure that the IP address is truly associated with the hostname.

Affected Software

Name Vendor Start Version End Version
Node.js Nodejs 10.0.0 (including) 10.24.0 (excluding)
Node.js Nodejs 12.0.0 (including) 12.21.0 (excluding)
Node.js Nodejs 14.0.0 (including) 14.16.0 (excluding)
Node.js Nodejs 15.0.0 (including) 15.10.0 (excluding)
Red Hat Enterprise Linux 8 RedHat nodejs:12-8030020210302104621.229f0a1c *
Red Hat Enterprise Linux 8 RedHat nodejs:10-8030020210225164533.229f0a1c *
Red Hat Enterprise Linux 8 RedHat nodejs:14-8030020210301172147.229f0a1c *
Red Hat Enterprise Linux 8.1 Extended Update Support RedHat nodejs:12-8010020210302113522.c27ad7f8 *
Red Hat Enterprise Linux 8.1 Extended Update Support RedHat nodejs:10-8010020210225115101.c27ad7f8 *
Red Hat Enterprise Linux 8.2 Extended Update Support RedHat nodejs:10-8020020210225153906.4cda2c84 *
Red Hat Enterprise Linux 8.2 Extended Update Support RedHat nodejs:12-8020020210302112530.4cda2c84 *
Red Hat Software Collections for Red Hat Enterprise Linux 7 RedHat rh-nodejs10-nodejs-0:10.24.0-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7 RedHat rh-nodejs14-nodejs-0:14.16.0-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7 RedHat rh-nodejs12-nodejs-0:12.21.0-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.6 EUS RedHat rh-nodejs10-nodejs-0:10.24.0-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.6 EUS RedHat rh-nodejs14-nodejs-0:14.16.0-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.6 EUS RedHat rh-nodejs12-nodejs-0:12.21.0-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.7 EUS RedHat rh-nodejs10-nodejs-0:10.24.0-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.7 EUS RedHat rh-nodejs14-nodejs-0:14.16.0-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.7 EUS RedHat rh-nodejs12-nodejs-0:12.21.0-1.el7 *
Nodejs Ubuntu bionic *
Nodejs Ubuntu esm-apps/bionic *
Nodejs Ubuntu focal *
Nodejs Ubuntu groovy *
Nodejs Ubuntu hirsute *
Nodejs Ubuntu impish *
Nodejs Ubuntu kinetic *
Nodejs Ubuntu trusty *
Nodejs Ubuntu upstream *
Nodejs Ubuntu xenial *

Extended Description

Since DNS names can be easily spoofed or misreported, and it may be difficult for the product to detect if a trusted DNS server has been compromised, DNS names do not constitute a valid authentication mechanism. When the product performs a reverse DNS resolution for an IP address, if an attacker controls the DNS server for that IP address, then the attacker can cause the server to return an arbitrary hostname. As a result, the attacker may be able to bypass authentication, cause the wrong hostname to be recorded in log files to hide activities, or perform other attacks. Attackers can spoof DNS names by either (1) compromising a DNS server and modifying its records (sometimes called DNS cache poisoning), or (2) having legitimate control over a DNS server associated with their IP address.

Potential Mitigations

References