Bug 1889686 (CVE-2020-25684) - CVE-2020-25684 dnsmasq: loose address/port check in reply_query() makes forging replies easier for an off-path attacker
Summary: CVE-2020-25684 dnsmasq: loose address/port check in reply_query() makes forgi...
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2020-25684
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1896064 1905012 1905013 1905014 1896052 1896053 1896054 1896055 1896057 1896059 1896061 1917316 1917317 1917784 1917791 1918951 1918952
Blocks: 1875522
TreeView+ depends on / blocked
 
Reported: 2020-10-20 11:21 UTC by Riccardo Schirone
Modified: 2021-02-16 19:05 UTC (History)
29 users (show)

Fixed In Version: dnsmasq 2.83
Doc Type: Known Issue
Doc Text:
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.
Clone Of:
Environment:
Last Closed: 2021-01-19 17:59:20 UTC


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2021:0199 0 None None None 2021-01-20 18:19:07 UTC
Red Hat Product Errata RHBA-2021:0242 0 None None None 2021-01-25 17:13:26 UTC
Red Hat Product Errata RHSA-2021:0150 0 None None None 2021-01-19 13:16:47 UTC
Red Hat Product Errata RHSA-2021:0151 0 None None None 2021-01-19 13:34:19 UTC
Red Hat Product Errata RHSA-2021:0152 0 None None None 2021-01-19 13:11:48 UTC
Red Hat Product Errata RHSA-2021:0153 0 None None None 2021-01-19 13:55:00 UTC
Red Hat Product Errata RHSA-2021:0154 0 None None None 2021-01-19 13:57:31 UTC
Red Hat Product Errata RHSA-2021:0155 0 None None None 2021-01-19 14:08:10 UTC
Red Hat Product Errata RHSA-2021:0156 0 None None None 2021-01-19 13:36:05 UTC
Red Hat Product Errata RHSA-2021:0240 0 None None None 2021-01-25 14:22:13 UTC
Red Hat Product Errata RHSA-2021:0245 0 None None None 2021-01-25 15:11:02 UTC
Red Hat Product Errata RHSA-2021:0395 0 None None None 2021-02-03 10:37:21 UTC
Red Hat Product Errata RHSA-2021:0401 0 None None None 2021-02-03 16:13:08 UTC

Description Riccardo Schirone 2020-10-20 11:21:29 UTC
When getting a reply from a forwarded query, dnsmasq checks in forward.c:reply_query() if the reply destination address/port is one of those 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 is in contrast with RFC5452, which specifies the attributes of a query that all must be used to match a reply. This flaw could be abused to perform a DNS Cache Poisoning attack.

Comment 14 lnacshon 2020-12-07 11:18:48 UTC
OSD3 are using dnsmasq which is shipped with rhel-7, no any security wrapping on dnsmasq which may prevent the attack

Comment 19 Riccardo Schirone 2021-01-14 11:27:34 UTC
Red Hat Enterprise Linux 5, 6, 7, and 8 are all affected in the same way and the same mitigations apply.

Comment 21 Eric Christensen 2021-01-14 19:52:13 UTC
Mitigation:

The impact of this flaw can be reduced by disabling the dnsmasq cache by adding `--cache-size=0` when calling dnsmasq or by adding a line with `cache-size=0` to the dnsmasq configuration file (/etc/dnsmasq.conf by default).

When using Red Hat Enterprise Linux 8.3 with libvirt through a virt:rhel module, use `virsh net-edit <network-name>` and reference https://libvirt.org/formatnetwork.html#elementsNamespaces to add the suggested option `cache-size=0`. 

There is no way to customize the dnsmasq configuration generated by libvirt, when using versions of Red Hat Enterprise Linux prior to version 8.3. If dnsmasq is being run through NetworkManager, create a new file in /etc/NetworkManager/dnsmasq.d/ and add `cache-size=0` to it.

In all cases, by disabling the cache, you may experience a performance loss in your environment due to all DNS queries being forwarded to the upstream servers. Please evaluate if the mitigation is appropriate for the system’s environment before applying.

Comment 23 Riccardo Schirone 2021-01-15 14:43:33 UTC
Statement:

Dnsmasq may be run by libvirt and/or NetworkManager. libvirt uses dnsmasq by default to provide DNS service to its guests. NetworkManager may be configured to use dnsmasq to provide DNS service to the system, if a line `dns=dnsmasq` is present in the `[main]` section of the configuration file /etc/NetworkManager/NetworkManager.conf.

In Red Hat OpenStack Platform (RHOSP) and Red Hat Virtualization (RHV), the dnsmasq package is provided by the underlying Red Hat Enterprise Linux (RHEL) product. RHOSP and RHV are therefore indirectly affected, so please ensure that the underlying RHEL dnsmasq package is updated.

Comment 24 Riccardo Schirone 2021-01-15 17:16:11 UTC
Acknowledgments:

Name: Moshe Kol (JSOF), Shlomi Oberman (JSOF)

Comment 26 Riccardo Schirone 2021-01-19 11:36:26 UTC
External References:

https://www.jsof-tech.com/disclosures/dnspooq/

Comment 27 Riccardo Schirone 2021-01-19 11:56:29 UTC
Created dnsmasq tracking bugs for this issue:

Affects: fedora-all [bug 1917784]

Comment 29 errata-xmlrpc 2021-01-19 13:12:26 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.1 Extended Update Support

Via RHSA-2021:0152 https://access.redhat.com/errata/RHSA-2021:0152

Comment 30 errata-xmlrpc 2021-01-19 13:16:45 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2021:0150 https://access.redhat.com/errata/RHSA-2021:0150

Comment 32 errata-xmlrpc 2021-01-19 13:34:57 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8.2 Extended Update Support

Via RHSA-2021:0151 https://access.redhat.com/errata/RHSA-2021:0151

Comment 33 errata-xmlrpc 2021-01-19 13:36:01 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7.4 Advanced Update Support
  Red Hat Enterprise Linux 7.4 Update Services for SAP Solutions
  Red Hat Enterprise Linux 7.4 Telco Extended Update Support

Via RHSA-2021:0156 https://access.redhat.com/errata/RHSA-2021:0156

Comment 34 errata-xmlrpc 2021-01-19 13:54:57 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2021:0153 https://access.redhat.com/errata/RHSA-2021:0153

Comment 35 errata-xmlrpc 2021-01-19 13:57:28 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7.7 Extended Update Support

Via RHSA-2021:0154 https://access.redhat.com/errata/RHSA-2021:0154

Comment 36 errata-xmlrpc 2021-01-19 14:08:09 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7.6 Extended Update Support

Via RHSA-2021:0155 https://access.redhat.com/errata/RHSA-2021:0155

Comment 37 Product Security DevOps Team 2021-01-19 17:59:20 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2020-25684

Comment 39 errata-xmlrpc 2021-01-25 14:22:09 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7.2 Advanced Update Support

Via RHSA-2021:0240 https://access.redhat.com/errata/RHSA-2021:0240

Comment 40 errata-xmlrpc 2021-01-25 15:10:59 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7.3 Advanced Update Support

Via RHSA-2021:0245 https://access.redhat.com/errata/RHSA-2021:0245

Comment 41 errata-xmlrpc 2021-02-03 10:37:17 UTC
This issue has been addressed in the following products:

  Red Hat Virtualization 4 for Red Hat Enterprise Linux 7

Via RHSA-2021:0395 https://access.redhat.com/errata/RHSA-2021:0395

Comment 42 errata-xmlrpc 2021-02-03 16:13:05 UTC
This issue has been addressed in the following products:

  Red Hat Virtualization 4 for Red Hat Enterprise Linux 8

Via RHSA-2021:0401 https://access.redhat.com/errata/RHSA-2021:0401


Note You need to log in before you can comment on or make changes to this bug.