LKRG 0.9.0发布:揭示Linux内核7个高危漏洞的发现之旅

LKRG 0.9.0版本发布,文章重点介绍了在该项目开发和测试过程中发现的7个Linux内核安全漏洞,其中4个已分配CVE编号。内容包括CVE-2021-3411、CVE-2020-27825等漏洞的技术细节、影响范围以及发现过程,涉及KPROBES、ftrace、BPF等核心内核组件,揭示了内核安全研究中的实际挑战。

LKRG 0.9.0 has been released!

在LKRG的开发和测试过程中,我发现了7个Linux内核漏洞,其中4个已分配CVE编号(但有一个CVE编号覆盖了两个漏洞):

  • CVE-2021-3411 - Linux内核:KRETPROBES和优化器(OPTIMIZER)存在缺陷
  • CVE-2020-27825 - Linux内核:由于竞态条件,ftrace环形缓冲区(ring buffer)调整大小逻辑中存在释放后使用(Use-After-Free)漏洞
  • CVE-2020-25220 - Linux内核:针对CVE-2020-14356的后移植补丁中存在释放后使用漏洞(受影响内核版本:4.9.233之前的4.9.x,4.14.194之前的4.14.x,以及4.19.140之前的4.19.x)
  • CVE-2020-14356 - Linux内核:cgroup BPF组件中的释放后使用漏洞(受影响内核版本:4.5+ 至 5.7.10)

我还发现了另外两个与ftrace释放后使用漏洞(CVE-2020-27825)相关的问题:

  1. 一个死锁问题,该问题并未得到真正解决,开发者表示会关注但后续更新不多。
  2. hwlatd内核线程相关的代码存在问题——它与该线程的启动/终止器之间的同步不正确。这可能导致内核中持续出现WARN警告。

CVE-2021-3411涉及两种不同类型的漏洞:

  1. KRETPROBE功能损坏(最近报告)
  2. KPROBE优化器与链接器最新更改不兼容。

此外,我还发现了一个关于终止进程中内核信号处理的漏洞:

  • CVE-2020-12826 – 5.6.5之前的Linux内核未充分限制退出信号。

不过,我不记得这个漏洞是否是在LKRG相关工作期间发现的,所以没有将其计入此处(否则总数将是8个漏洞,其中5个有CVE编号)。

这些统计数字相当糟糕……然而,这或许可以作为LKRG新版本发布时一个有趣的故事。也可能是一个适合在会议上分享的有趣议题。

完整的发布公告可以在此处阅读:https://www.openwall.com/lists/announce/2021/04/12/1

此致, Adam

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计