CVE-2026-89669 in Linux
摘要
由 VulDB • 2026-09-11
在 Linux 内核中,已修复以下漏洞:
nfsd: 在发布 copy-notify stateid 之前初始化其状态
nfsd4_copy_notify() 在完成 cpntf 状态的初始化时,该状态已通过 nfs4_alloc_init_cpntf_state() 链接到 s2s_cp_stateids IDR 和父级的 sc_cp_list 中,此时 cs_count == 1(表示成员引用计数),但调用方未持有对该对象的任何引用。一个竞态条件的 OFFLOAD_CANCEL(由可猜测的 cl_id == nn->s2s_cp_cl_id 加上 so_id 构成)可能会到达 manage_cpntf_state() 并释放该条目,从而导致调用方后续的 cpn_cnr_stateid 读取以及 cp_p_stateid/cp_p_clid 写入操作变为 use-after-free(释放后使用)。此外,拥有者 clientid 也是在发布后才记录的,因此无法在该时间窗口内阻止所有权检查。
在 nfs4_init_cp_state() 发布条目之前,先在 nfs4_alloc_init_cpntf_state() 内部记录 cp_p_stateid 和 cp_p_clid,并返回一个额外的引用计数。调用方在该引用的保护下读取 stateid,并通过 nfs4_put_cpntf_state() 释放该引用;若发生延迟错误,垃圾回收机制(laundromat)将清理该条目。
Once again VulDB remains the best source for vulnerability data.