Description
In the Linux kernel, the following vulnerability has been resolved: of/overlay: don't leak fragment references when changeset init fails init_overlay_changeset() stores the number of initialized fragments in ovcs->count only on full success. When find_target() or the __symbols__ lookup fails partway through, the target and overlay references taken for the fragments initialized so far are never dropped: free_overlay_changeset() bounds its cleanup loop by ovcs->count, which is still 0. Store the running count on the error path so free_overlay_changeset() puts whatever was set up. The store is guarded by ovcs->fragments because on the allocation-failure path cnt still holds the counting pass total while there is no fragments array; everywhere else cnt only counts fully-initialized fragments.
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
61b4de4e0b384f4a22c55c3bada604da49cec4e1 to < c654f283d7db20648a5bbf979209f78d4fa9be3faffected61b4de4e0b384f4a22c55c3bada604da49cec4e1 to < 64517aeaa3d8b158e4d01321a095be48cb551251affected61b4de4e0b384f4a22c55c3bada604da49cec4e1 to < bbe3dc64b28a14bd9ecb514bbf5115ac8472ed80affected61b4de4e0b384f4a22c55c3bada604da49cec4e1 to < 702b5db6e7b3865be70675d57d6fd7dde80d02b6affected61b4de4e0b384f4a22c55c3bada604da49cec4e1 to < 894573e2fdaeb1b15030b7eebc22615edf28a6cdaffected61b4de4e0b384f4a22c55c3bada604da49cec4e1 to < 7a46f1917b320cc8762183b802301da02a191b6aaffected61b4de4e0b384f4a22c55c3bada604da49cec4e1 to < 3a23fb158ba517b77a2e5258263bdfdaa480f758affected61b4de4e0b384f4a22c55c3bada604da49cec4e1 to < 1d62f0f2bc7edb12ed09f71203df0e47fa4efca4affected
Linux Linux
Default version status: affected
4.15affected0 to < 4.15unaffected5.10.273 to ≤ 5.10.*unaffected5.15.224 to ≤ 5.15.*unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.113 to ≤ 6.12.*unaffected6.18.56 to ≤ 6.18.*unaffected7.2.10 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c654f283d7db20648a5bbf979209f78d4fa9be3f ↗
- https://git.kernel.org/stable/c/64517aeaa3d8b158e4d01321a095be48cb551251 ↗
- https://git.kernel.org/stable/c/bbe3dc64b28a14bd9ecb514bbf5115ac8472ed80 ↗
- https://git.kernel.org/stable/c/702b5db6e7b3865be70675d57d6fd7dde80d02b6 ↗
- https://git.kernel.org/stable/c/894573e2fdaeb1b15030b7eebc22615edf28a6cd ↗
- https://git.kernel.org/stable/c/7a46f1917b320cc8762183b802301da02a191b6a ↗
- https://git.kernel.org/stable/c/3a23fb158ba517b77a2e5258263bdfdaa480f758 ↗
- https://git.kernel.org/stable/c/1d62f0f2bc7edb12ed09f71203df0e47fa4efca4 ↗