CVE-2026-53129

Summary

In the Linux kernel, the following vulnerability has been resolved:

fs/mbcache: cancel shrink work before destroying the cache

mb_cache_destroy() calls shrinker_free() and then frees all cache entries and the cache itself, but it does not cancel the pending c_shrink_work work item first.

If mb_cache_entry_create() schedules c_shrink_work via schedule_work() and the work item is still pending or running when mb_cache_destroy() runs, mb_cache_shrink_worker() will access the cache after its memory has been freed, causing a use-after-free.

This is only reachable by a privileged user (root or CAP_SYS_ADMIN) who can trigger the last put of a mounted ext2/ext4/ocfs2 filesystem.

Cancel the work item with cancel_work_sync() before calling shrinker_free(), ensuring the worker has finished and will not be rescheduled before the cache is torn down.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxc2f3140fe2eceb3a6c1615b2648b9471544881c6 < a88d39a74a208e197c03bffaa2df34de732af19faffected
LinuxLinuxc2f3140fe2eceb3a6c1615b2648b9471544881c6 < 0e4eff315d799f5842b95872199b0f0fb8ef5f51affected
LinuxLinuxc2f3140fe2eceb3a6c1615b2648b9471544881c6 < b25fd3523bef88fb7ffd4c5b63bbe9c08f73bb4caffected
LinuxLinuxc2f3140fe2eceb3a6c1615b2648b9471544881c6 < d227786ab1119669df4dc333a61510c52047cce4affected
LinuxLinux4.6affected
LinuxLinux0 < 4.6unaffected
LinuxLinux6.12.91 <= 6.12.*unaffected
LinuxLinux6.18.33 <= 6.18.*unaffected
LinuxLinux7.0.10 <= 7.0.*unaffected
LinuxLinux7.1 <= *unaffected

Weaknesses

References