UBUNTU-CVE-2026-89646: High severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: ceph: fix leaked inode reference on writeback abort at umount cephdirtyfolio() takes a wrbuffer claim on each newly dirtied folio: it bumps iwrbufferref (taking an ihold() on the 0->1 transition) and attaches the snapcontext to folio->private. That claim is released only by cephputwrbuffercaprefs(), which for a submitted write runs from writepagesfinish(). In cephsubmitwrite(), if cephincosdstoppingblocker() fails -- which happens during umount -- the request is aborted before submission: the already-collected folios are only redirtied and unlocked, so writepagesfinish() never runs and the claim is leaked. redirtypageforwritepage() -> folioredirtyforwritepage() -> filemapdirtyfolio() sets PGdirty directly and does not go through ->dirtyfolio, so cephdirtyfolio() is not re-entered to rebalance it. Because every subsequent writeback also fails the osdstoppingblocker, iwrbufferref never returns to 0, the ihold() is never dropped, and the inode cannot be evicted: VFS: Busy inodes after unmount of ceph kernel BUG at fs/super.c:650! Release the orphaned claim in the abort path before redirtying, via cephundowrbufferclaim(): detach the snapcontext, drop the wrbuffer reference (letting iwrbufferref reach 0 and iput() the inode), and drop the snapcontext reference -- i.e. do what writepagesfinish() would have done for these never-submitted folios. Only the lockedpages entries are undone; folios still in the fbatch were never dirty-cleared by this call (foliocleardirtyforio() is the ownership-transfer point, and a successful move NULLs the fbatch slot), so they hold no claim this call owns.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In the ceph_submit_write() abort path when ceph_inc_osd_stopping_blocker() fails during unmount, call ceph_undo_wrbuffer_claim() for the never-submitted folios before redirtying them, so the snap_context is detached, the wrbuffer reference is dropped, and the snap_context reference is released as writepages_finish() would have done.