Linux 内核 DCCP 协议的 IPv6 中存在的 Use-after-free 安全漏洞 - CVE-2017-6074

Public Date: February 17, 2017, 20:06
已更新 February 8, 2024, 11:53 - English(英语) French Japanese Korean
Resolved 状态
Important Impact

红帽产品安全团队已知一个影响到 Linux k 内核 DCCP 协议的 IPV6 的安全漏洞。  这个安全漏洞已被记录为 CVE-2017-6074。  此安全漏洞在 2017 年 2 月 20 日已向公众公布,并被定级为 Important

背景信息

DCCP 是第 4 层(传输层)网络协议,它的作用是允许软件开发人员在应用层控制网络拥塞设置。  DCCP 使用 IP 作为它在第 3 层(网络层)的协议,因此它可以在互联网中进行路由。  因此,这个协议被设计为在基于 IPV4 和 IPV6 的系统上工作。  这个安全漏洞利用了基于 IPV6 的 DCCP 连接中存在的一个问题。

DCCP 使用一个内部状态机来对连接进行跟踪。  当端口处于 LISTEN 状态时,DCCP 状态机会错误处理 DCCP_PKT_REQUEST 数据结构。  这将会允许,可以控制同一个网络节点上的客户端和服务器的本地用户提供一个 "Use After Free" 的情况。  当建立连接时,一个名为 skbuff 的数据结构会为每个连接创建。  在 skbuff 的最后会有另外一个名为 skb_shared_info 的数据结构,这个数据结构包括一个 ubuf_info struct。  这个 struct 包括了一个功能指针,当 skb 被清理时会调用这个指针。  在这里存在一个问题:当 skbuff 的内存被释放后,这个 ubuf_info struct 的回调函数回被调用。  因此,一个攻击者可以创建一种情况:在内存被释放和二级错误使用间使用恶意指令覆盖内存数据,滥用上面提到的功能指针。

这个安全攻击可以成功的条件是,服务器和客户端都运行在相同的系统上,从而使到 sk_shared_info struct 的指代在被释放后仍然可以被重新指代。


红帽产品安全团队已把此安全问题的影响级别定为 Important

受影响的产品

以下版本的红帽产品会受到影响:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise MRG 2
  • Red Hat Openshift Online v2
  • Red Hat Virtualization (RHEV-H/RHV-H)
  • RHEL Atomic Host 

安全攻击的描述及影响

这个安全漏洞可能会给在本地系统上具有账户的攻击者提高账户权限的可能。这种类型的安全漏洞通常被称为 UAF(Use After Free)。通常,攻击者会执行一段恶意代码,这个代码会利用一个指针,这个指针在 free() 操作后不再指代一段被分配的内存,而恶意代码会使用这个指针访问内存。针对于这里讨论的安全问题,此漏洞存在于 DCCP 网络代码中,具有权限在任何本地接口上初始一个 DCCP 网络连接的用户都可能利用这个安全漏洞对系统进行安全攻击,攻击造成的结果包括:主机内核崩溃、在主机内核上下文内执行代码,以及其它可能的权限升级(通过修改内核内存的数据结构实现)。攻击者需要在系统上具有访问一个本地账户的权限;攻击者无法利用这个安全漏洞进行远程攻击,并需要对 IPV6 功能的支持已启用。

诊断您的安全漏洞


判断您的系统使用有安全漏洞

使用以下提高的脚本来判断您的系统是否存在此安全漏洞。

采取行动

我们强烈建议所有运行受影响版本内核的红帽用户在相关补丁程序可使用时升级内核。以下列出了受影响的软件包,并推荐了相关的防范措施。在内核升级后需要重启系统。

产品软件包公告
Red Hat Enterprise Linux 7kernelRHSA-2017:0000
Red Hat Enterprise Linux 7kernel-rtRHSA-2017:0000
Red Hat Enterprise Linux 7.2 Extended Update Support*kernel待定
Red Hat Enterprise Linux 7.1 Extended Update Support*kernel待定
Red Hat Enterprise Linux 6kernelRHSA-2017:0000
Red Hat Enterprise Linux 6.7 Extended Update Support*kernel待定
Red Hat Enterprise Linux 6.6 Advanced Update Support**kernel待定
Red Hat Enterprise Linux 6.5 Advanced Update Support**kernel待定
Red Hat Enterprise Linux 6.2 Advanced Update Support***kernel待定
Red Hat Enterprise Linux 5kernelRHSA-2017:0000
Red Hat Enterprise Linux 5.9 Advanced Update Support**kernel待定
Red Hat Enterprise Linux 5.6 Advanced Update Support**kernel待定
RHEL Atomic Hostkernel待定
Red Hat Enterprise MRG 2kernel-rt待定
Red Hat Virtualization (RHEV-H/RHV-H)kernel待定

受影响产品的更新

*需要一个有效的 EUS 订阅 才可以访问这个补丁程序。

如果您的账户不包括有效的 EUS 订阅,请 联系 红帽销售或与您相关的销售人员。

什么是 Red Hat Enterprise Linux Extended Update Support 订阅?

**对于 RHEL AUS,需要一个有效的 AUS 订阅才可以访问这个补丁程序。

防范措施

当应用程序试图使用 DCCP 协议时,DCCP 内核  模块会被自动加载  使用系统范围内的 modprobe 规则可以防止这个模块被加载。 以下命令(需要以 root 用户运行)会防止这个模块被(有意或无意)加载。  红帽产品安全团队相信这是一个非常有效的方法来防止用户(包括有高权限的用户)无意中加载这个模块。





# echo "install dccp /bin/true" >> /etc/modprobe.d/disable-dccp.conf 


如果系统已加载了 DDCP 模块,则系统需要重启。  在多数情况下,如果网络接口处于活跃状态,而这个模块在被使用,则无法卸载 DCCP 内核模块。

如果您还需要更多帮助,请参阅这个 KCS 文章 ( https://access.redhat.com/solutions/41278 ) 或 联系红帽全球支持服务(GSS)。

另外,具有最新更新的 RHEL 6 和 7 系统中的相关 SELinux 策略也会减缓这里所提到的安全漏洞会造成的影响。(请参阅 CVE-2017-6074 .















Comments