LKRG 0.9.0发布:发现7个Linux内核漏洞,含4个CVE编号

本文详细介绍了LKRG 0.9.0版本开发过程中发现的7个Linux内核漏洞,包括CVE-2021-3411、CVE-2020-27825等4个CVE编号漏洞,涉及KRETPROBES、ftrace环形缓冲区、cgroup BPF组件等技术细节,并讨论了漏洞的利用条件和影响范围。

LKRG 0.9.0 已发布!

作者:pi3

在 LKRG 开发和测试过程中,我发现了 7 个 Linux 内核漏洞,其中 4 个拥有 CVE 编号(但 1 个 CVE 编号覆盖了 2 个漏洞):

  • CVE-2021-3411 - Linux 内核:KRETPROBES 和优化器缺陷
  • CVE-2020-27825 - Linux 内核:由于竞态条件导致的 ftrace 环形缓冲区调整大小逻辑中的释放后使用漏洞
  • 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 UAF 漏洞(CVE-2020-27825)相关的另外两个问题:

  1. 未真正解决的死锁问题,开发者表示会关注但后续更新甚少。
  2. 与 hwlatd 内核线程相关的代码问题——其启动器/终止器的同步机制不正确,可能导致内核持续产生警告。

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

归档分类:漏洞挖掘、漏洞利用、LKRG

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