Database/Kernel, userspace & hypervisor
Linux CephFS client: use-after-free when a cap-flush entry is freed by a fast FLUSH_ACK mid-iteration
Impact
__kick_flushing_caps() iterates ci->i_cap_flush_list with list_for_each_entry() but drops i_ceph_lock to send each cap message. If the MDS answers with FLUSH_ACK quickly enough, handle_cap_flush_ack() detaches the entry and frees it outside any lock; the loop macro then dereferences cf->i_list.next on freed memory. The window is opened by the client's own send, so it needs no attacker - a responsive MDS under load is enough. On a GPU node with a kernel CephFS mount this is an unplanned node crash during normal filesystem writeback, which is exactly the kind of failure that costs a long-running training job. The fix converts the loop to save the next pointer under i_ceph_lock before dropping it.
Who can reach it
No authentication or tenant access needed to trigger - it is a timing race between the client's cap flush and the MDS ack. An attacker controlling the MDS could make fast acks more likely, but ordinary cluster latency suffices.
What to do
Update to a stable kernel carrying the fix (four backport commits linked on the record); drain and reboot each node holding a kernel CephFS mount, since the client cannot be reloaded under a live mount. Batch with the other ceph fixes from the same day. No configuration change avoids it.
References
Related entries
- Linux libceph: malformed CRUSH map aliases bucket workspaces and overflows the permutation bufferCVE-2026-89656 · Linux kernel libceph (crush_decode, bucket id vs array slot validation)Unscored
- Linux libceph: malformed OSD sparse-read reply advances the message cursor past the request buffer and panicsCVE-2026-89657 · Linux kernel libceph (osd_sparse_read, sparse extent map validation)Unscored
- Linux kernel nfsd: dentry reference leak on every crafted NFSv3 filehandle against a V4ROOT exportCVE-2026-89683 · Linux kernel nfsd (V4ROOT export filehandle lookup)Unscored
- Linux nfsd: ACL translation errors in NFSv4 CREATE are discarded and the file is created without the requested ACLCVE-2026-89693 · Linux kernel nfsd (nfsd4_create ACL error handling)Unscored
- Linux nfsd: any authenticated NFSv4.2 client can cancel and free another client's copy-notify stateidCVE-2026-89694 · Linux kernel nfsd (NFSv4.2 copy-notify stateid)Unscored
- Linux nfsd: unprivileged netlink dump leaks 8 bytes of rq_flags and truncates IPv6 client addressesCVE-2026-89698 · Linux kernel nfsd (NFSD_CMD_RPC_STATUS_GET netlink, nfsd_genl_rqstp)Unscored
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.