【漏洞通告】CVE-2020-14386: Linux内核权限提升漏洞通告

2020.10.10

摘要

近日,openwall邮件组 发布了Linux kernel 存在一个权限提升漏洞(CVE-2020-14386),漏洞等级: 高危 ,漏洞评分: 7.8

1.漏洞概述

近日,openwall邮件组 发布了Linux kernel 存在一个权限提升漏洞(CVE-2020-14386),漏洞等级: 高危 ,漏洞评分: 7.8。由于net/packet/af_packet.c在处理AF_PACKET时存在整数溢出,导致可进行越界写从而实现权限提升,攻击者可以利用此漏洞从非特权进程获得系统root权限。使用了Linux Kernel的openshift/docker/kubernetes等虚拟化产品可能会受到该漏洞影响,导致虚拟化逃逸,请相关用户采取措施进行防护。

目前使用内核进行虚拟化的产品如 openshift/docker/kubernetes 在错误的配置策略下,同样受到该漏洞影响,并可能造成虚拟环境逃逸。

Linux发行版高于4.6的内核版本的源码 net/packet/af_packet.c 在处理AF_PACKET时存在一处整数溢出漏洞。该漏洞的触发需要本地低权限用户/可执行文件 启用 CAP_NET_RAW 功能。

2.受影响版本

  • 4.6<= Linux kernel < 5.9-rc4
  • CentOS = 8
  • Ubuntu => 18.04
  • RHEL = 8
  • Debian = 9-10

Linux系统用户可以通过查看版本来判断当前系统是否在受影响范围内,查看系统版本信息命令如下:

cat /proc/version

如显示的 Linux version 大于 4.6 且小于 5.9,则漏洞可能存在。

3.通用修补建议

1.    可以应用如下 commit 的内核补丁 acf69c946233259ab4d64f8869d4037a198c7f06

CVE-2020-14386 linux-kernel-git-patch

2.    根据 RedHat 的建议关闭 CAP_NET_RAW 功能,对于单个可执行程序

# 查看程序的 cap 权限
getcap /bin/ping
/bin/ping cap_net_raw=ep
# 删除 cap_net_raw 权限
setcap cap_net_raw-ep /bin/ping
# 检查
getcap /bin/ping
/bin/ping =

同时 RedHat 指出在 Red Hat Enterprise Linux 8上,还可以通过利用非特权用户名称空间来获得CAP_NET_RAW功能, 可以通过如下措施缓解。

echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf
sysctl -p /etc/sysctl.d/userns.conf

4.参考链接

https://www.openwall.com/lists/oss-security/2020/09/03/3
https://access.redhat.com/security/cve/cve-2020-14386