从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题描述:arm64的uprobes代码在大端模式内核中存在错误,因为它没有将内存中的指令编码(始终是小端模式)转换为内核的本地端模式进行分析和模拟指令。 - 问题影响: - 内核可能错误地拒绝探查可以安全探查的指令。 - 内核可能错误地允许在无法安全探查的指令上进行断点。 - 内核可能错误地以不正确的顺序模拟指令。 2. 解决方案: - 修复方法:通过更改arch_uprobe::{insn,ixol}字段为__le32,并在消费指令编码之前添加适当的__le32_to_cpu()转换,以解决端模式不匹配问题。 - 代码示例: 3. 测试结果: - 测试代码: 4. 修复后的结果: - 修复前:ADRP指令未被识别,导致结果被破坏。 - 修复后:ADRP指令被正确识别和模拟,结果正确。 5. 补丁信息: - 补丁描述:修复了arm64添加uprobes支持的问题。 - 补丁作者:Mark Rutland - 补丁状态:已合并到master分支。 这些信息详细描述了漏洞的背景、影响、解决方案、测试结果以及补丁的详细信息。