从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 当创建一个trace_probe时,会设置nr_args,但在设置探针时,只会初始化不超过128个参数。 - 这会导致无效的内存访问,当尝试设置探针时,如果参数超过128个。 2. 错误信息: - 内核NULL指针访问,地址为0000000000000020。 - 错误代码为0x0000 - 不在内核模式。 - 错误代码为0x0000 - 不在内核模式。 - 错误代码为0x0000 - 不在内核模式。 3. 硬件信息: - CPU:0 UID:0 PID:1769。 - 内存:cat Not tainted 6.11.0-rc7 + #8。 - 硬件名称:QEMU Standard PC (i440FX + PIIX, 1996),BIOS 1.16.3-1.fc39 04/01/2014。 4. 解决方法: - 通过在设置探针时更早地应用MAX_TRACE_ARGS限制来解决这个问题。 - 当参数超过限制时,返回错误,而不是默默地截断。 5. 补丁内容: - 修改了trace_probe_create函数,当参数超过MAX_TRACE_ARGS时,返回错误代码-E2BIG。 - 修改了trace_fprobe_create、trace_kprobe_create和trace_uprobe_create函数,当参数超过MAX_TRACE_ARGS时,返回错误代码-E2BIG。 6. 补丁应用: - 该补丁修复了tracing/probes中的问题,修复了nr_args在trace_probe_init时的初始化问题。 - 该补丁由Mikel Rychliski和Masami Hiramatsu提交。 这些信息表明,该漏洞与内核中的trace_probe创建函数有关,当参数超过MAX_TRACE_ARGS时,会导致无效的内存访问。通过在设置探针时更早地应用限制,可以解决这个问题。