drm/i915/gem: Prevent overstepping exec array boundary
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.113, 6.18.57, 7.2.11
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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)
Timeline
- CVE published
- First seen by cve.now
- Record last updated
Affected versions
- Linux Linux
From 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 · fixed in 24c04e80c35ff36947366f6deafddb522eea080c; From 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 · fixed in b1c357131fc467c579f65e9a9d1fdc1a6273ae1d; From 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 · fixed in 152fb5083b9333a1cb8629572f9e0f276a404ba6; From 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 · fixed in 72d5cbb10d4916a3f8ef9da516c5c0634aca8439; From 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 · fixed in ebe162db655881a38de43301151ff7ac940602b5
- Linux Linux
5.10
- KernelLinux
From 5.10.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.2.11