Description
In the Linux kernel, the following vulnerability has been resolved: ext4: fix invalid free tracking in ext4_xattr_move_to_block() In ext4_xattr_move_to_block(), the value of the extended attribute which we need to move to an external block may be allocated by kvmalloc() if the value is stored in an external inode. So at the end of the function the code tried to check if this was the case by testing entry->e_value_inum. However, at this point, the pointer to the xattr entry is no longer valid, because it was removed from the original location where it had been stored. So we could end up calling kvfree() on a pointer which was not allocated by kvmalloc(); or we could also potentially leak memory by not freeing the buffer when it should be freed. Fix this by storing whether it should be freed in a separate variable.
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
c7851208abffe5ae4deb01cf48763911dc14fc67 to < 76887be2a96193cd11be818551b8934ecdb3123faffectedf5cdc6a7339f250d44d4d469ed7a474ac0d6c7a7 to < f30f3391d089dc91aef91d08f4b04a6c0df2b067affected3b28c799a1334adb5a19f42f03abe0d8cbb05938 to < ba04d6af5ac440a6d5a2d35dc1d8e2cb0323550aaffectedd738789ae9ec47d3458a008788f3cdc862ebf0cb to < 1a8822343e67432b658145d2760a524c884da9d4affecteda6744e14ce7045ab1a728bde9595f62fbd39f1d2 to < 8beaa3cb293a8f7bacf711cf52201d59859dbc40affected8b6d06b3be7648b3b0f428558293ddf6e2cb94bf to < c5fa4eedddd1c8342ce533cb401c0e693e55b4e3affectedd2efaf8c870c7067b8d1779773134f3481cd8f68 to < a18670395e5f28acddeca037c5e4bd2ea961b70aaffected1e9d62d252812575ded7c620d8fc67c32ff06c16 to < b2fab1807d26acd1c6115b95b5eddd697d84751baffected1e9d62d252812575ded7c620d8fc67c32ff06c16 to < b87c7cdf2bed4928b899e1ce91ef0d147017ba45affected4.14.308 to < 4.14.315affected4.19.276 to < 4.19.283affected5.4.235 to < 5.4.243affected5.10.173 to < 5.10.180affected5.15.99 to < 5.15.112affected6.1.16 to < 6.1.29affected6.2.3 to < 6.2.16affected
Linux Linux
Default version status: affected
6.3affected0 to < 6.3unaffected4.14.315 to ≤ 4.14.*unaffected4.19.283 to ≤ 4.19.*unaffected5.4.243 to ≤ 5.4.*unaffected5.10.180 to ≤ 5.10.*unaffected5.15.112 to ≤ 5.15.*unaffected6.1.29 to ≤ 6.1.*unaffected6.2.16 to ≤ 6.2.*unaffected6.3.3 to ≤ 6.3.*unaffected6.4 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/76887be2a96193cd11be818551b8934ecdb3123f ↗
- https://git.kernel.org/stable/c/f30f3391d089dc91aef91d08f4b04a6c0df2b067 ↗
- https://git.kernel.org/stable/c/ba04d6af5ac440a6d5a2d35dc1d8e2cb0323550a ↗
- https://git.kernel.org/stable/c/1a8822343e67432b658145d2760a524c884da9d4 ↗
- https://git.kernel.org/stable/c/8beaa3cb293a8f7bacf711cf52201d59859dbc40 ↗
- https://git.kernel.org/stable/c/c5fa4eedddd1c8342ce533cb401c0e693e55b4e3 ↗
- https://git.kernel.org/stable/c/a18670395e5f28acddeca037c5e4bd2ea961b70a ↗
- https://git.kernel.org/stable/c/b2fab1807d26acd1c6115b95b5eddd697d84751b ↗
- https://git.kernel.org/stable/c/b87c7cdf2bed4928b899e1ce91ef0d147017ba45 ↗