CVE-2026-23394Linux内核af_unix套接字模块中存在一个竞态条件漏洞。该漏洞源于垃圾回收(GC)机制与MSG_PEEK系统调用之间的同步缺失。当GC正在检测套接字生命周期时,若并发发生MSG_PEEK操作,会导致文件引用计数短暂增加,随后被close操作减少。由于缺乏同步机制,GC可能错误地判定活跃套接字已死亡,并清空其接收队列,从而导致拒绝服务。
漏洞原理在于af_unix的GC算法依赖文件引用计数来判断套接字是否可被回收。在包含sk-A和sk-B的强连通分量(SCC)中,若sk-A已关闭但可通过sk-B接收,GC在检查`unix_vertex_dead`时,用户线程对sk-B执行`recv(MSG_PEEK)`会静默增加sk-A的引用计数,破坏了GC的判断逻辑。随后若立即close(sk-B),引用计数下降。此时GC若观察到引用计数变化,应放弃回收,但原代码未处理此竞态。补丁引入`seqcount_t`,在MSG_PEEK时标记,通知GC推迟收集SCC,从而避免误清理。