从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题: 和 函数在使用uprobes时存在安全问题。 - 原因: - 这些函数最初是为kprobes设计的,使用了plain C访问内存。 - 当uprobes被添加后,这些函数被直接使用,但它们无法安全地访问用户内存。 - 三个关键问题: - 1) 平坦的C访问没有对应的可执行条目,导致在遇到故障时,内核会将其视为对用户内存的无意访问,导致内核线程崩溃。 - 2) 平坦的C访问受硬件和软件保护,任何对用户内存的模拟都会导致故障。 - 3) 平坦的C访问是特权的,只能访问一小范围的内核虚拟地址,模拟的指令必须在TTBR0地址范围内,这会导致问题。 2. 解决方案: - 避免在LDR (literal) 和 LDRSW (literal) 上使用uprobes,限制使用 和 。 - 将uprobes放置在LDR (literal) 和 LDRSW (literal) 上将被拒绝, 将返回 。 - 未来可以考虑引入支持这些指令的uprobes,但需要更多的工作。 3. 修复和补丁: - 修复了 。 - 修复了 。 - 修复了 。 - 修复了 。 - 修复了 。 4. Diffstat: - 1个文件更改,11个插入,5个删除。 5. Diff内容: - 修改了 文件,删除了对 和 的调用。 这些信息表明,该漏洞与uprobes在LDR (literal) 和 LDRSW (literal) 上的使用有关,且修复了这些函数的调用,以避免安全问题。