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)相关的问题:
- 一个死锁问题,该问题并未得到真正解决,开发者表示会关注但后续更新不多。
- 与
hwlatd内核线程相关的代码存在问题——它与该线程的启动/终止器之间的同步不正确。这可能导致内核中持续出现WARN警告。
CVE-2021-3411涉及两种不同类型的漏洞:
- KRETPROBE功能损坏(最近报告)
- KPROBE优化器与链接器最新更改不兼容。
此外,我还发现了一个关于终止进程中内核信号处理的漏洞:
- CVE-2020-12826 – 5.6.5之前的Linux内核未充分限制退出信号。
不过,我不记得这个漏洞是否是在LKRG相关工作期间发现的,所以没有将其计入此处(否则总数将是8个漏洞,其中5个有CVE编号)。
这些统计数字相当糟糕……然而,这或许可以作为LKRG新版本发布时一个有趣的故事。也可能是一个适合在会议上分享的有趣议题。
完整的发布公告可以在此处阅读:https://www.openwall.com/lists/announce/2021/04/12/1
此致, Adam