In the Linux kernel, the following vulnerability has been resolved: drm/i915/gem: Prevent overstepping exec array boundary It is possible for eb_relocate_parse_slow() to call kvfree() on entries outside the original exec array during following scenario inside eb_relocate_parse_slow(): 1) eb_copy_relocations() allocates as many as eb->buffer_count copies for exec entries; 2) eb_parse() appends up to two VMAs, right after incrementing eb->buffer_count; 3) cleanup under "out" label uses this incremented buffer_count to release relocation pointers from exec array via kvfree(), not from VMA array. To amend this problem, ensure that relocation cleanup uses the original exec object count, excluding the VMAs appended by the command parser. (cherry picked from commit 2a0158925fb943c7ba8f3216e2734952128defc9)
https://git.kernel.org/stable/c/ebe162db655881a38de43301151ff7ac940602b5
https://git.kernel.org/stable/c/b1c357131fc467c579f65e9a9d1fdc1a6273ae1d
https://git.kernel.org/stable/c/72d5cbb10d4916a3f8ef9da516c5c0634aca8439
https://git.kernel.org/stable/c/24c04e80c35ff36947366f6deafddb522eea080c
https://git.kernel.org/stable/c/152fb5083b9333a1cb8629572f9e0f276a404ba6