Description (CNA)
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)
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 before 24c04e80c35ff36947366f6deafddb522eea080c; affected 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 before b1c357131fc467c579f65e9a9d1fdc1a6273ae1d; affected 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 before 152fb5083b9333a1cb8629572f9e0f276a404ba6; affected 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 before 72d5cbb10d4916a3f8ef9da516c5c0634aca8439; affected 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 before ebe162db655881a38de43301151ff7ac940602b5 |
| Linux / Linux | affected 5.10; unaffected 0 before 5.10; unaffected 6.6.160 through 6.6.*; unaffected 6.12.113 through 6.12.*; unaffected 6.18.57 through 6.18.*; unaffected 7.2.11 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/24c04e80c35ff36947366f6deafddb522eea080c
- https://git.kernel.org/stable/c/b1c357131fc467c579f65e9a9d1fdc1a6273ae1d
- https://git.kernel.org/stable/c/152fb5083b9333a1cb8629572f9e0f276a404ba6
- https://git.kernel.org/stable/c/72d5cbb10d4916a3f8ef9da516c5c0634aca8439
- https://git.kernel.org/stable/c/ebe162db655881a38de43301151ff7ac940602b5