0x00 漏洞概述
CVE ID |
CVE-2020-28588 |
时 间 |
2021-04-28 |
类 型 |
信息泄露 |
等 级 |
高危 |
远程利用 |
影响范围 |
||
PoC/EXP |
未公开 |
在野利用 |
0x01 漏洞详情
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)
$ whiletrue; do cat /proc/self/syscall; done | uniq (# waits for changes)
$ whiletrue; 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/
本文始发于微信公众号(维他命安全):Linux Kernel信息泄露漏洞(CVE-2020-28588)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论