// For flags

CVE-2020-25684

dnsmasq: loose address/port check in reply_query() makes forging replies easier for an off-path attacker

Severity Score

3.7
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

A flaw was found in dnsmasq before version 2.83. When getting a reply from a forwarded query, dnsmasq checks in the forward.c:reply_query() if the reply destination address/port is used by the pending forwarded queries. However, it does not use the address/port to retrieve the exact forwarded query, substantially reducing the number of attempts an attacker on the network would have to perform to forge a reply and get it accepted by dnsmasq. This issue contrasts with RFC5452, which specifies a query's attributes that all must be used to match a reply. This flaw allows an attacker to perform a DNS Cache Poisoning attack. If chained with CVE-2020-25685 or CVE-2020-25686, the attack complexity of a successful attack is reduced. The highest threat from this vulnerability is to data integrity.

Se encontró un fallo en dnsmasq versiones anteriores a 2.83. Al obtener una respuesta de una consulta reenviada, dnsmasq comprueba en forward.c:reply_query() si la dirección y puerto de destino de la respuesta es utilizado por las consultas reenviadas pendientes. Sin embargo, no usa la dirección y puerto para recuperar la consulta reenviada exacta, lo que reduce sustancialmente la cantidad de intentos que un atacante en la red tendría que realizar para falsificar una respuesta y lograr que dnsmasq la acepte. Este problema contrasta con RFC5452, que especifica los atributos de una consulta que deben ser usados para hacer coincidir una respuesta. Este fallo permite a un atacante realizar un ataque de envenenamiento de caché de DNS. Si está encadenado con CVE-2020-25685 o CVE-2020-25686, se reduce la complejidad del ataque de un ataque con éxito. La mayor amenaza de esta vulnerabilidad es la integridad de los datos

A flaw was found in dnsmasq. When getting a reply from a forwarded query, dnsmasq checks in the forward.c:reply_query() if the reply destination address/port is used by the pending forwarded queries. However, it does not use the address/port to retrieve the exact forwarded query, substantially reducing the number of attempts an attacker on the network would have to perform to forge a reply and get it accepted by dnsmasq. This issue contrasts with RFC5452, which specifies a query's attributes that all must be used to match a reply. This flaw allows an attacker to perform a DNS Cache Poisoning attack. If chained with CVE-2020-25685 or CVE-2020-25686, the attack complexity of a successful attack is reduced. The highest threat from this vulnerability is to data integrity.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
None
Integrity
Low
Availability
None
Attack Vector
Network
Attack Complexity
Medium
Authentication
None
Confidentiality
None
Integrity
Partial
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2020-09-16 CVE Reserved
  • 2021-01-19 CVE Published
  • 2024-03-23 EPSS Updated
  • 2024-08-04 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-358: Improperly Implemented Security Check for Standard
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Thekelleys
Search vendor "Thekelleys"
Dnsmasq
Search vendor "Thekelleys" for product "Dnsmasq"
< 2.83
Search vendor "Thekelleys" for product "Dnsmasq" and version " < 2.83"
-
Affected
Fedoraproject
Search vendor "Fedoraproject"
Fedora
Search vendor "Fedoraproject" for product "Fedora"
32
Search vendor "Fedoraproject" for product "Fedora" and version "32"
-
Affected
Fedoraproject
Search vendor "Fedoraproject"
Fedora
Search vendor "Fedoraproject" for product "Fedora"
33
Search vendor "Fedoraproject" for product "Fedora" and version "33"
-
Affected
Debian
Search vendor "Debian"
Debian Linux
Search vendor "Debian" for product "Debian Linux"
9.0
Search vendor "Debian" for product "Debian Linux" and version "9.0"
-
Affected
Debian
Search vendor "Debian"
Debian Linux
Search vendor "Debian" for product "Debian Linux"
10.0
Search vendor "Debian" for product "Debian Linux" and version "10.0"
-
Affected
Arista
Search vendor "Arista"
Eos
Search vendor "Arista" for product "Eos"
>= 4.21 < 4.21.14m
Search vendor "Arista" for product "Eos" and version " >= 4.21 < 4.21.14m"
-
Affected
Arista
Search vendor "Arista"
Eos
Search vendor "Arista" for product "Eos"
>= 4.22 < 4.22.9m
Search vendor "Arista" for product "Eos" and version " >= 4.22 < 4.22.9m"
-
Affected
Arista
Search vendor "Arista"
Eos
Search vendor "Arista" for product "Eos"
>= 4.23 < 4.23.7m
Search vendor "Arista" for product "Eos" and version " >= 4.23 < 4.23.7m"
-
Affected
Arista
Search vendor "Arista"
Eos
Search vendor "Arista" for product "Eos"
>= 4.24 < 4.24.5m
Search vendor "Arista" for product "Eos" and version " >= 4.24 < 4.24.5m"
-
Affected
Arista
Search vendor "Arista"
Eos
Search vendor "Arista" for product "Eos"
>= 4.25 < 4.25.2f
Search vendor "Arista" for product "Eos" and version " >= 4.25 < 4.25.2f"
-
Affected