---
id: CVE-2026-99006
title: 'drm/i915/gem: Prevent overstepping exec array boundary'
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 f…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 <
    24c04e80c35ff36947366f6deafddb522eea080c
  - >-
    Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 <
    b1c357131fc467c579f65e9a9d1fdc1a6273ae1d
  - >-
    Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 <
    152fb5083b9333a1cb8629572f9e0f276a404ba6
  - >-
    Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 <
    72d5cbb10d4916a3f8ef9da516c5c0634aca8439
  - >-
    Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 <
    ebe162db655881a38de43301151ff7ac940602b5
  - Linux 5.10
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T12:20:31.415Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-99006'
references:
  - url: 'https://git.kernel.org/stable/c/24c04e80c35ff36947366f6deafddb522eea080c'
  - url: 'https://git.kernel.org/stable/c/b1c357131fc467c579f65e9a9d1fdc1a6273ae1d'
  - url: 'https://git.kernel.org/stable/c/152fb5083b9333a1cb8629572f9e0f276a404ba6'
  - url: 'https://git.kernel.org/stable/c/72d5cbb10d4916a3f8ef9da516c5c0634aca8439'
  - url: 'https://git.kernel.org/stable/c/ebe162db655881a38de43301151ff7ac940602b5'
tags:
  - cve.org
ingestedAt: '2026-10-23T13:24:55.543Z'
---

## Overview

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

- `Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 < 24c04e80c35ff36947366f6deafddb522eea080c`
- `Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 < b1c357131fc467c579f65e9a9d1fdc1a6273ae1d`
- `Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 < 152fb5083b9333a1cb8629572f9e0f276a404ba6`
- `Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 < 72d5cbb10d4916a3f8ef9da516c5c0634aca8439`
- `Linux >= 8e4ba491b0ba6fef69270d3c4e48fc517096ef41 < ebe162db655881a38de43301151ff7ac940602b5`
- `Linux 5.10`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
