Description
In the Linux kernel, the following vulnerability has been resolved: dm-thin: fix metadata refcount underflow There's a bug in dm-thin in the function rebalance_children. If the internal btree node has one entry, the code tries to copy all btree entries from the node's child to the node itself and then decrement the child's reference count. If the child node is shared (it has reference count > 1), we won't free it, so there would be two pointers to each of the grandchildren nodes. But the reference counts of the grandchildren is not increased, thus the reference count doesn't match the number of pointers that point to the grandchildren. This results in "device mapper: space map common: unable to decrement block" errors. Fix this bug by incrementing reference counts on the grandchildren if the btree node is shared.
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
3241b1d3e0aaafbfcd320f4d71ade629728cc4f4 to < b719d12cb94df345e9ad2715fd0abe9afcaeb111affected3241b1d3e0aaafbfcd320f4d71ade629728cc4f4 to < f49b41c9eb7c6ff00df27cd49cea210abbadd8adaffected3241b1d3e0aaafbfcd320f4d71ade629728cc4f4 to < f06f6aededd792a754cd677c02b3d3016d868c2caffected3241b1d3e0aaafbfcd320f4d71ade629728cc4f4 to < 12161e03d33afce781f68fa11cc6060538862fadaffected3241b1d3e0aaafbfcd320f4d71ade629728cc4f4 to < 323d252a4a378834e4fe68298ca61cfc5dd3a460affected3241b1d3e0aaafbfcd320f4d71ade629728cc4f4 to < 85311a585a26640760cd0f3349ab9f2905691044affected3241b1d3e0aaafbfcd320f4d71ade629728cc4f4 to < 5ec0debbcfd43596e32c1239e993de06a704e04caffected3241b1d3e0aaafbfcd320f4d71ade629728cc4f4 to < 09a65adc7d8bbfce06392cb6d375468e2728ead5affected
Linux Linux
Default version status: affected
3.2affected0 to < 3.2unaffected5.10.259 to ≤ 5.10.*unaffected5.15.209 to ≤ 5.15.*unaffected6.1.175 to ≤ 6.1.*unaffected6.6.140 to ≤ 6.6.*unaffected6.12.88 to ≤ 6.12.*unaffected6.18.30 to ≤ 6.18.*unaffected7.0.7 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b719d12cb94df345e9ad2715fd0abe9afcaeb111 ↗
- https://git.kernel.org/stable/c/f49b41c9eb7c6ff00df27cd49cea210abbadd8ad ↗
- https://git.kernel.org/stable/c/f06f6aededd792a754cd677c02b3d3016d868c2c ↗
- https://git.kernel.org/stable/c/12161e03d33afce781f68fa11cc6060538862fad ↗
- https://git.kernel.org/stable/c/323d252a4a378834e4fe68298ca61cfc5dd3a460 ↗
- https://git.kernel.org/stable/c/85311a585a26640760cd0f3349ab9f2905691044 ↗
- https://git.kernel.org/stable/c/5ec0debbcfd43596e32c1239e993de06a704e04c ↗
- https://git.kernel.org/stable/c/09a65adc7d8bbfce06392cb6d375468e2728ead5 ↗
- https://cert-portal.siemens.com/productcert/html/ssa-784472.html ↗