【缝隙公告】Dnsmasq多个安全缝隙

颁布功夫 2021-01-20

0x00 缝隙概述

Dnsmasq是宽泛使用的开源软件 ,可提供DNS转发、缓存以及DHCP服务器职能 ,它在物联网(IoT)和其它嵌入式设备中很常见。

2021年01月19日 ,以色列安全征询公司JSOF披露了7个Dnsmasq缝隙(统称为DNSpooq) ,受 DNSpooq 影响的设备不仅会遭逢DNS 缓存中毒 ,还可被用于远程代码执杏注以及回绝服务攻击。

 

0x01 缝隙详情

image.png

 

由于DNSSEC处置代码的天堑查抄谬误 ,Dnsmasq中存在4个缓冲区溢露马脚。当Dnsmasq被配置为使用DNSSEC时 ,远程攻击者能够使用恶意设计的DNS响应来触发DNSpooq中的缓冲区溢出缝隙 ,最终导致回绝服务、信息泄露及远程代码执行。

Dnsmasq缓冲区溢露马脚(CVE-2020-25681)

使用DNSSEC时 ,2.83之前的Dnsmasq版本在sort_rrset()中容易产生基于堆的缓冲区溢出 ,其CVSS评分8.1。这能够使远程攻击者将肆意数据写入指标设备的内存中 ,可能导致指标设备上的内存败坏和其它意表行为。 

Dnsmasq缓冲区溢露马脚(CVE-2020-25682)

启用DNSSEC时 ,由于短缺长度查抄 ,2.83之前的Dnsmasq版本在extract_name()函数中容易产生缓冲区溢出 ,其CVSS评分8.1。这可能导致远程攻击者在指标设备上造成内存败坏。

Dnsmasq缓冲区溢露马脚(CVE-2020-25683)

启用DNSSEC时 ,由于rfc1035.c:extract_name()中短缺长度查抄 ,2.83之前的Dnsmasq版本容易出现基于堆的缓冲区溢出 ,其CVSS评分5.9。远程攻击者能够通过利用此缝隙在堆分配的内存中引起溢出 ,并且能够通过滥用长度查抄来导致 dnsmasq 崩溃 ,最终造成回绝服务。

Dnsmasq缓冲区溢露马脚(CVE-2020-25687)

启用DNSSEC时 ,由于rfc1035.c:extract_name()中短缺长度查抄 ,2.83之前的Dnsmasq版本在sort_rrset()中容易出现基于堆的缓冲区溢出 ,其CVSS评分5.9。远程攻击者能够通过利用此缝隙在堆分配的内存中引起溢出 ,并且能够通过滥用长度查抄来导致 dnsmasq 崩溃 ,最终造成回绝服务。

 

此表 ,在DNS响应验证中还存在DNSpooq缝隙中的其它3个 ,其CVSS评分均为4.0。这些缝隙可能导致DNS缓存中毒(或DNS糊弄) ,使得攻击者能够代替设备上的合法DNS纪录、粉碎DNS缓存并将用户沉定向到肆意站点、执行网络垂钓攻击、偷窃痛处或散布恶意软件等。

钻研人员的汇报暗示 ,通过利用这些缝隙可能粉碎通例的Internet浏览以及其它类型的流量 ,好比电子邮件、SSH、远程桌面、RDP视频、语音呼叫和软件更新等 ,甚至可能导致散布式回绝服务攻击(DDOS)、反向DDOS、蠕虫攻击等。

Dnsmasq缓存中毒缝隙(CVE-2020-25684)

在Dnsmasq 2.83之前版本中的reply_query函数中 ,不足适当的address/port查抄 ,这导致reply_query函数更容易伪造回复给蹊径表的攻击者。

Dnsmasq缓存中毒缝隙(CVE-2020-25685)

dnsmasq在2.83之前的版本中实现的reply_query函数不足查问资源名(RRNAME)查抄 ,允许远程攻击者糊弄DNS流量 ,从而导致DNS缓存中毒。

Dnsmasq缓存中毒缝隙(CVE-2020-25686)

2.83之前Dnsmasq不查抄是否存在一样名称的待处置要求 ,而是转发新要求 ,从而使攻击者能够执杏装Birthday Attack” (RFC 5452) 来糊弄DNS流量 ,从而导致DNS缓存中毒。

 

影响领域

Dnsmasq <2.83

 

钻研人员暗示 ,利用DNSpooq缝隙进行攻击极度容易 ,能够在几秒钟或几分钟内实现 ,且不必要任何复杂的技术或工具。以下是DNS糊弄的流程图:

image.png

目前暂不明显受DNSpooq缝隙影响的所有公司 ,JSOF在其汇报中着沉列出了40个供给商 ,其中蕴含Android / Google、Comcast、Cisco、Redhat、Netgear、Qualcomm、Linksys、Netgear、IBM、D-Link、Dell、华为和Ubiquiti等。

截止目前 ,Shodan搜索显示 ,目前Internet上有超过100万个Dnsmasq服务器公开 ,其中中国散布的Dnsmasq为397246 ,位列第一:

image.png

 

 

0x02 措置建议

为了预防DNSpooq缝隙的攻击 ,建议将Dnsmasq软件更新到2.83版本。

一时措施

针对无法立即更新Dnsmasq的用户 ,建议使用一时措施:

l  如非必要 ,请将dnsmasq配置为不侦听WAN接口。

l  使用选项”--dns-forward-max= “削减允许转发的最大数量,其默认值为150。

l  临时禁用DNSSEC验证选项 ,直到装置补丁为止。

l  使用为DNS提供传输安全性的和谈(如DoT或DoH) ,这将减轻Dnspooq缝隙攻击的影响 ,但可能会带来其它安全隐患 ,请慎沉执行此操作。

l  削减EDNS新闻的最大大幼可能会缓解某些缝隙 ,但尚未经过测试 ,且违背了RFC5625。

 

0x03 参考链接

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

https://www.jsof-tech.com/wp-content/uploads/2021/01/DNSpooq_Technical-Whitepaper.pdf

https://www.bleepingcomputer.com/news/security/dnspooq-bugs-let-attackers-hijack-dns-on-millions-of-devices/

https://threatpost.com/dnspooq-flaws-allow-dns-hijacking-of-millions-of-devices/163163/

 

0x04 功夫线

2021-01-19  JSOF披露缝隙

2021-01-20  VSRC颁布安全公告

 

0x05 附录

 

CVSS评分尺度官网:http://www.first.org/cvss/

image.png