Description
In the Linux kernel, the following vulnerability has been resolved: blk-cgroup: fix leaks and online flag on radix_tree_insert failure When radix_tree_insert() fails in blkg_create(), the error path has two issues: 1. blkg->online is set to true unconditionally, even when the blkg was never fully inserted. Move the assignment inside the success block. 2. The error path calls blkg_put() without first calling percpu_ref_kill(). Because the refcount is still in percpu mode, percpu_ref_put() only does this_cpu_sub() without checking for zero, so blkg_release() is never triggered. This permanently leaks the blkg memory, its percpu iostat, policy data, the parent blkg reference, and the cgroup css reference — the latter preventing the cgroup from ever being destroyed. Fix by replacing blkg_put() with percpu_ref_kill(), matching the pattern used in blkg_destroy().
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
7fcf2b033b84e261dca283bc2911aaea4b07b525 to < 0f840db042caee9d2f3dcdcf97d6674f6e4c1e30affected7fcf2b033b84e261dca283bc2911aaea4b07b525 to < f53945d7c712efe63fadbcc5ffed6370871fd0d3affected7fcf2b033b84e261dca283bc2911aaea4b07b525 to < ada8270ccdb6f212da5eb22614c28ea418746a4aaffected7fcf2b033b84e261dca283bc2911aaea4b07b525 to < c3650be82ef6e7af13b79b2d10a7363bdf54aa7faffected7fcf2b033b84e261dca283bc2911aaea4b07b525 to < 6e85f02d45b5977c0326a8d854c6db878aa6b34aaffected7fcf2b033b84e261dca283bc2911aaea4b07b525 to < 4c0d150fb98ea40760611979f4e664c244b20966affected7fcf2b033b84e261dca283bc2911aaea4b07b525 to < dbbca20764382b4d411ec2918f4e278ffe547accaffected
Linux Linux
Default version status: affected
5.0affected0 to < 5.0unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/0f840db042caee9d2f3dcdcf97d6674f6e4c1e30 ↗
- https://git.kernel.org/stable/c/f53945d7c712efe63fadbcc5ffed6370871fd0d3 ↗
- https://git.kernel.org/stable/c/ada8270ccdb6f212da5eb22614c28ea418746a4a ↗
- https://git.kernel.org/stable/c/c3650be82ef6e7af13b79b2d10a7363bdf54aa7f ↗
- https://git.kernel.org/stable/c/6e85f02d45b5977c0326a8d854c6db878aa6b34a ↗
- https://git.kernel.org/stable/c/4c0d150fb98ea40760611979f4e664c244b20966 ↗
- https://git.kernel.org/stable/c/dbbca20764382b4d411ec2918f4e278ffe547acc ↗