【误差通告】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