NewStart CGSL MAIN 6.02:dnsmasq 多个漏洞 (NS-SA-2021-0091)

high Nessus 插件 ID 147341

语言:

简介

远程机器受到多个漏洞影响。

描述

运行 MAIN 6.02 版本的远程 NewStart CGSL 主机上安装的 dnsmasq 程序包受到多个漏洞的影响:

- 在 dnsmasq 2.83 之前的版本中发现一个缺陷。在使用 DNSSEC 数据验证之前对 RRSet 排序的方式中发现基于堆的缓冲区溢出。网络上可伪造被视为有效而被接受的 DNS 回复的攻击者可利用此缺陷,通过堆内存段中的任意数据,造成缓冲区溢出,并可能在计算机上执行代码。此漏洞最大的威胁在于数据机密性和完整性,以及系统可用性。
(CVE-2020-25681)

- 在 dnsmasq 2.83 之前的版本中发现一个缺陷。发现 dnsmasq 在使用 DNSSEC 数据验证 DNS 数据包中的名称之前将其提取的方式中存在缓冲区溢出漏洞。网络上可创建有效 DNS 回复的攻击者可利用此缺陷,通过堆分配内存中的任意数据,造成溢出,并可能在计算机上执行代码。在 rfc1035.c: extract_name() 函数中存在缺陷,如果在缓冲区中 MAXDNAME*2 字节可用,可将数据写入名称指向的内存。但是,在某些代码执行路径中,extract_name() 可能在基本缓冲区中传递偏移数据,因此实际缩减了写入缓冲区的可用字节数。此漏洞最大的威胁在于数据机密性和完整性,以及系统可用性。(CVE-2020-25682)

- 在 dnsmasq 2.83 之前的版本中发现一个缺陷。在启用 DNSSEC 时验证接收的 DNS 条目之前,发现 dnsmasq 中存在基于堆的缓冲区溢出。可创建有效 DNS 回复的远程攻击者可利用此缺陷,造成堆分配内存溢出。此缺陷的成因是 rfc1035.c: extract_name() 缺少长度检查,攻击者可利用此漏洞,通过代码执行 get_rdata() 为负值的 memcpy(),造成 dnsmasq 崩溃,从而导致拒绝服务。此漏洞最大的威胁在于系统可用性。(CVE-2020-25683)

- 在 dnsmasq 2.83 之前的版本中发现一个缺陷。通过转发的查询收到回复时,dnsmasq 会在 forward.c: reply_query() 中检查是否有待处理的转发查询使用了回复目标地址/端口。但是,该服务器不会使用地址/端口来检索确切的转发查询,从而大幅减少了网络上的攻击者为了伪造回复并使之被 dnsmasq 接受而必须执行的尝试次数。此问题与 RFC5452 不同,后者指定了一个查询为了匹配回复而必须具备的所有属性。攻击者可利用此缺陷执行 DNS 缓存中毒攻击。如果与 CVE-2020-25685 或 CVE-2020-25686 链接,则可降低成功攻击的攻击复杂性。此漏洞最主要的威胁对象是数据完整性。(CVE-2020-25684)

- 在 dnsmasq 2.83 之前的版本中发现一个缺陷。通过转发的查询收到回复时,dnsmasq 会通过只使用查询名称的弱哈希来检查 forward.c: reply_query(),这是与回复相匹配的转发查询。此缺陷是弱哈希(在不使用 DNSSEC 的情况下进行编译时为 CRC32,在使用 DNSSEC 的情况下进行编译时为 SHA-1)所致,偏离路径攻击者可利用此缺陷找到多个都拥有相同哈希的不同域,从而大幅减少自己为了伪造回复并使之被 dnsmasq 接受而必须执行的尝试次数。此缺陷与 RFC5452 不同,后者指定了查询名称是一个查询为了匹配回复而必须具备的属性之一。攻击者可滥用此缺陷执行 DNS 缓存中毒攻击。如果与 CVE-2020-25684 链接,则可降低成功攻击的攻击复杂性。
此漏洞最主要的威胁对象是数据完整性。(CVE-2020-25685)

- 在 dnsmasq 2.83 之前的版本中发现一个缺陷。收到查询时,dnsmasq 不会检查是否存在相同名称的待处理请求,而是转发新请求。默认情况下,最多可将 150 个待处理查询发送到上游服务器,因此,最多可以有 150 个查询使用相同的名称。
网络上的偏离路径攻击者可利用此缺陷,大幅减少自己为了伪造回复并使之被 dnsmasq 接受而必须执行的尝试次数。此问题在 RFC5452 的“生日攻击”部分中有提及。如果与 CVE-2020-25684 链接,则可降低成功攻击的攻击复杂性。此漏洞最主要的威胁对象是数据完整性。
(CVE-2020-25686)

- 在 dnsmasq 2.83 之前的版本中发现一个缺陷。在启用 DNSSEC 时验证接收的 DNS 条目之前,发现 dnsmasq 中存在基于堆的缓冲区溢出。可创建有效 DNS 回复的远程攻击者可利用此缺陷,造成堆分配内存溢出。此缺陷的成因是 rfc1035.c: extract_name() 缺少长度检查,攻击者可利用此漏洞,通过代码执行 sort_rrset() 为负值的 memcpy(),造成 dnsmasq 崩溃,从而导致拒绝服务。此漏洞最大的威胁在于系统可用性。(CVE-2020-25687)

请注意,Nessus 尚未测试此问题,而是只依赖于应用程序自我报告的版本号。

解决方案

升级易受攻击的 CGSL dnsmasq 程序包。请注意,可能尚无可用的已更新程序包。请联系 ZTE 获取更多信息。

另见

http://security.gd-linux.com/notice/NS-SA-2021-0091

插件详情

严重性: High

ID: 147341

文件名: newstart_cgsl_NS-SA-2021-0091_dnsmasq.nasl

版本: 1.4

类型: local

发布时间: 2021/3/10

最近更新时间: 2022/12/5

支持的传感器: Nessus

风险信息

VPR

风险因素: Medium

分数: 5.9

CVSS v2

风险因素: High

基本分数: 8.3

时间分数: 6.1

矢量: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:C

CVSS 分数来源: CVE-2020-25682

CVSS v3

风险因素: High

基本分数: 8.1

时间分数: 7.1

矢量: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:U/RL:O/RC:C

漏洞信息

必需的 KB 项: Host/local_checks_enabled, Host/ZTE-CGSL/release, Host/ZTE-CGSL/rpm-list, Host/cpu

易利用性: No known exploits are available

补丁发布日期: 2021/3/9

漏洞发布日期: 2021/1/19

参考资料信息

CVE: CVE-2020-25681, CVE-2020-25682, CVE-2020-25683, CVE-2020-25684, CVE-2020-25685, CVE-2020-25686, CVE-2020-25687