Security Advisory 2021-01-19-1 - dnsmasq multiple vulnerabilities
Petr Štetiar
ynezz at true.cz
Tue Jan 19 16:18:22 EST 2021
DESCRIPTION
Dnsmasq has two sets of vulnerabilities, one set of memory corruption issues
handling DNSSEC and a second set of issues validating DNS responses. These
vulnerabilities could allow an attacker to corrupt memory on the target device
and perform cache poisoning attacks against the target environment.
These vulnerabilities are also tracked as ICS-VU-668462 and referred to as
DNSpooq[1]. You can find the latest version of this advisory on our wiki[2].
JSOF reported multiple buffer overflow vulnerabilities in dnsmasq due to
boundary checking errors in DNSSEC handling code.
* CVE-2020-25681 A heap-based buffer overflow in dnsmasq in the way it sorts
RRSets before validating them with DNSSEC data.
* CVE-2020-25682 A buffer overflow vulnerability in the way dnsmasq extract
names from DNS packets before validating them with DNSSEC data.
* CVE-2020-25683 A heap-based buffer overflow in get_rdata subroutine of
dnsmasq, when DNSSEC is enabled and before it validates the received DNS
entries.
* CVE-2020-25687 A heap-based buffer overflow in sort_rrset subroutine of
dnsmasq, when DNSSEC is enabled and before it validates the received DNS
entries.
JSOF also reported vulnerabilities in DNS response validation.
* CVE-2020-25684 Dnsmasq does not validate the combination of address/port
and the query-id fields of DNS request when accepting DNS responses.
* CVE-2020-25685 Dnsmasq uses a weak hashing algorithm (CRC32) when compiled
without DNSSEC to validate DNS responses.
* CVE-2020-25686 Dnsmasq does not check for an existing pending request for
the same name and forwards a new request thus allowing an attacker to do a
"Birthday Attack" scenario to forge replies and potentially poison the DNS
cache.
OpenWrt ships the following package variants of dnsmasq:
* dnsmasq
* dnsmasq-dhcpv6
* dnsmasq-full
CVE-2020-25684 and CVE-2020-25686 are affecting all dnsmasq package variants.
CVE-2020-25681, CVE-2020-25682, CVE-2020-25683, CVE-2020-25685 and
CVE-2020-25687 are related to DNSSEC problems in dnsmasq and are only
affceting the dnsmasq-full package and not dnsmasq and dnsmasq-dhcpv6
variants.
REQUIREMENTS
The buffer overflow vulnerabilities can be triggered by a remote attacker
using crafted DNS responses that can lead to denial of service, information
exposure and potentially remote code execution. The DNS response validation
vulnerabilities allow an attacker to use unsolicited DNS responses to poison
the DNS cache resulting in redirection of users to malicious sites.
MITIGATIONS
1. Configuration based mitigation
Mitigation for DNS cache poisoning is disabling of caching:
uci set dhcp. at dnsmasq[0].cachesize='0'
Mitigation for DNSSEC vulnerability is disabling of DNSSEC feature:
uci set dhcp. at dnsmasq[0].dnssec='0'
Reduce the maximum of queries allowed to be forwarded from 150 to 50:
uci set dhcp. at dnsmasq[0].dnsforwardmax='50'
Then you should commit changes and restart dnsmasq:
uci commit dhcp
/etc/init.d/dnsmasq restart
2. Package upgrade
You need to update the affected dnsmasq package variant you're using with the
command below.
opkg update; opkg upgrade $(opkg list-installed dnsmasq* | cut -d' ' -f1)
Then verify, that you're running fixed version.
opkg list-installed dnsmasq*
The above command should output following:
dnsmasq - 2.80-16.2 - for stable 19.07 release
dnsmasq - 2.83-1 - for master/snapshot
The fix is contained in the following and later versions:
* OpenWrt master: 2021-01-19 reboot-15541-ge87c0d934c54
* OpenWrt 19.07: 2021-01-19 v19.07.6-0-gb12284a14ce9
AFFECTED VERSIONS
To our knowledge, OpenWrt version 19.07.0 to 19.07.5 are affected. The fixed
packages will be integrated in the upcoming OpenWrt 19.07.6 release. Older
versions of OpenWrt (e.g. OpenWrt 18.06, OpenWrt 15.05 and LEDE 17.01) are end
of life and not supported any more.
CREDITS
Moshe Kol and Shlomi Oberman of JSOF researched and reported these
vulnerabilities. Simon Kelley (author of dnsmasq) worked closely with
collaborative vendors (Cisco, Comcast, Google, Pi-Hole, Redhat) to develop
patches to address these security vulnerabilities. GitHub also supported these
collaboration efforts providing support to use their GitHub Security Advisory
platform for collaboration.
Parts of this document were written by Vijay Sarvepalli (CERT/CC).
REFERENCES
1. https://www.jsof-tech.com/disclosures/dnspooq/
2. https://openwrt.org/advisory/2021-01-19-1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20210119/383a26a9/attachment.sig>
More information about the openwrt-devel
mailing list