从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 漏洞类型:UAF(Use After Free)。 - 触发条件:在kcm_release()函数中,当一个线程正在构建一个MSG_MORE类型的skb(socket buffer)时,另一个线程可能会在skb_stream_wait_memory()函数中阻塞,导致skb被放入写队列。当第一个线程释放skb时,可能会导致double-free(双重释放)。 2. 触发场景: - 1. 线程A构建一个skb并设置kcm->seq_skb。 - 2. 线程A从kcm->seq_skb恢复构建,但被sk_stream_wait_memory()阻塞。 - 3. 线程B调用sendmsg()并完成构建,将skb放入写队列。 - 4. 线程A处理错误并释放已经放入写队列的skb。 - 5. kcm_release()函数释放写队列中的skb。 3. 修复措施: - 添加一个per-sk互斥锁,并对kcm_sendmsg()进行序列化。 4. 相关代码变更: - 修改了 文件中的 结构体,添加了 字段。 - 修改了 文件中的 函数,添加了对 的互斥锁操作。 5. 补丁链接: - 补丁链接 6. 报告和测试: - 漏洞由syzkaller报告,并在6.8.0-rc5版本中测试通过。 7. 修复者: - 修复者是Kuniyuki Iwashima。 这些信息可以帮助我们理解漏洞的触发条件、修复措施以及相关的代码变更。