Linux Kernel信息泄露缝隙(CVE-2020-28588)

颁布功夫 2021-04-28

0x00 缝隙概述

CVE  ID

CVE-2020-28588

时    间

2021-04-28

类   型

信息泄露

等    级

高危

远程利用


影响领域


PoC/EXP

未公开

在野利用


 

0x01 缝隙详情

image.png

2021年04月27日,Cisco Talos公开披露了在Linux内核中发现的一个信息泄露缝隙 (CVE-2020-28588) 。该缝隙存在于运行Linux的32位ARM设备的/proc/pid/syscall职能中,由于数致粪型之间的谬误转换,攻击者能够通过读取/proc/<pid>/syscall文件来利用此缝隙,以查看内核仓库内存信息或通过此缝隙来利用其它未建复的Linux缝隙 。

此表,攻击者还能够通过此信息泄露缝隙绕过KASLR 。内核地址空间布局随机化(KASLR)是一种反利用技术,能够将各类对象随机搁置,以预防被攻击者猜测 。

 

缝隙细节

/Proc是类Unix系统中的一个特殊的虚构文件系统,用于动态地接见内核中的过程数据 。它以类似于文件的档次结构显示有关过程的信息和其它系统信息 。例如,它蕴含/proc/[pid]子目录,每个子目录都蕴含文件和子目录,这些文件和子目录蕴含了有关特定过程的信息,而这些信息能够通过使用相应的过程ID来读取 。syscall 文件是一个合法的Linux系统文件,它蕴含内核使用的系统挪用日志 。

/proc/pid/syscall文件会露出系统挪用号码和当前过程在执行的系统挪用的参数寄放器,以及仓库指针和法式计数器寄放器的值 。固然大无数系统挪用使用的寄放器较少,但所有的六个参数寄放器的值城市被露出 。

攻击者能够通过读取/proc/<pid>/syscall文件来查看内核内存信息,这能够在内核配置了CONFIG_HAVE_ARCH_TRACEHOOK的任何特定Linux系统上看到输出,但攻击无法在远程网络上进行检测 。

触发该缝隙的shell号令为:

# echo 0 > /proc/sys/kernel/randomize_va_space (# only needed for a cleaner output)

$ while true; do cat /proc/self/syscall; done | uniq (# waits for changes)

$ while true; do free &>/dev/null; done (# triggers changes)

 

钻研人员首先在Azure Sphere设备(版本20.10,32位ARM设备)上发现了这个缝隙,该设备运行打了一个补丁的Linux内核 。这个缝隙在v5.1-rc4(提交为631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0)中已经被引入,但在v5.10-rc4中依然存在,所以这中央的所有版本很可能都受到影响 。

 

影响领域

v5.1-rc4 - v5.10-rc4

已测试版本:

Linux Kernel v5.10-rc4

Linux Kernel v5.4.66

Linux Kernel v5.9.8

 

0x02 措置建议

建议升级到最新版本 。

下载链接:

https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.12.tar.xz

 

0x03 参考链接

https://blog.talosintelligence.com/2021/04/vuln-spotlight-linux-kernel.html

https://talosintelligence.com/vulnerability_reports/TALOS-2020-1211

https://threatpost.com/linux-kernel-bug-wider-cyberattacks/165640/

 

0x04 功夫线

2021-04-27  Cisco Talos公开缝隙

2021-04-28  VSRC颁布安全公告

 

0x05 附录

 

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

image.png