CVE-2020-25684
dnsmasq: loose address/port check in reply_query() makes forging replies easier for an off-path attacker
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
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.
CVSS Scores
SSVC
- Decision:-
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
References (10)
URL | Tag | Source |
---|---|---|
https://lists.debian.org/debian-lts-announce/2021/03/msg00027.html | Mailing List | |
https://www.arista.com/en/support/advisories-notices/security-advisories/12135-security-advisory-61 | Third Party Advisory | |
https://www.jsof-tech.com/disclosures/dnspooq | Third Party Advisory |
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://bugzilla.redhat.com/show_bug.cgi?id=1889686 | 2021-02-03 |
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
|