从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 漏洞类型:UAF(Use After Free)。 - 触发条件:在kcm_release()函数中,当一个线程正在构建一个MSG_MORE类型的skbuff时,另一个线程可能会在sk_stream_wait_memory()函数中阻塞,导致kcm->seq_skb被释放,但skbuff仍然在写队列中。当线程A释放skbuff时,它会尝试再次使用它,导致UAF。 2. 触发场景: - 1. 线程A构建一个skbuff,并设置kcm->seq_skb。 - 2. 线程A在sk_stream_wait_memory()函数中阻塞。 - 3. 线程B调用kcm_sendmsg(),完成skbuff的构建,并将其放入写队列。 - 4. 线程A处理错误并释放skbuff,但skbuff已经在写队列中。 - 5. kcm_release()函数尝试再次使用已经释放的skbuff。 3. 修复措施: - 添加了一个per-sk互斥锁,并对kcm_sendmsg()进行了序列化。 4. 补丁内容: - 修改了 文件中的 结构体,添加了 字段。 - 修改了 文件中的 函数,增加了对 的互斥锁操作。 5. 补丁应用: - 修复了 中的UAF问题。 - 关闭了 的漏洞报告。 6. 补丁作者: - Kuniyuki Iwashima 。 这些信息表明,该漏洞是由于在kcm_release()函数中释放了已经放入写队列的skbuff,导致在另一个线程中再次使用该skbuff时发生UAF。修复措施是通过添加互斥锁来确保skbuff在被释放后不会被再次使用。