Description (CNA)
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 (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected c2f3140fe2eceb3a6c1615b2648b9471544881c6 before cbdd6f0fb19a0ce8a013acd80ac87a62f57fa20d; affected c2f3140fe2eceb3a6c1615b2648b9471544881c6 before a88d39a74a208e197c03bffaa2df34de732af19f; affected c2f3140fe2eceb3a6c1615b2648b9471544881c6 before 0e4eff315d799f5842b95872199b0f0fb8ef5f51; affected c2f3140fe2eceb3a6c1615b2648b9471544881c6 before b25fd3523bef88fb7ffd4c5b63bbe9c08f73bb4c; affected c2f3140fe2eceb3a6c1615b2648b9471544881c6 before d227786ab1119669df4dc333a61510c52047cce4 |
| Linux / Linux | affected 4.6; unaffected 0 before 4.6; unaffected 6.6.160 through 6.6.*; unaffected 6.12.91 through 6.12.*; unaffected 6.18.33 through 6.18.*; unaffected 7.0.10 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/cbdd6f0fb19a0ce8a013acd80ac87a62f57fa20d
- https://git.kernel.org/stable/c/a88d39a74a208e197c03bffaa2df34de732af19f
- https://git.kernel.org/stable/c/0e4eff315d799f5842b95872199b0f0fb8ef5f51
- https://git.kernel.org/stable/c/b25fd3523bef88fb7ffd4c5b63bbe9c08f73bb4c
- https://git.kernel.org/stable/c/d227786ab1119669df4dc333a61510c52047cce4