All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-cve-announce@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@kernel.org>
Subject: CVE-2026-80870: drm/amdkfd: Validate CRIU-restored IDs before idr_alloc
Date: Fri,  4 Sep 2026 18:46:37 +0200	[thread overview]
Message-ID: <2026090434-CVE-2026-80870-d17a@gregkh> (raw)

From: Greg Kroah-Hartman <gregkh@kernel.org>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

drm/amdkfd: Validate CRIU-restored IDs before idr_alloc

The KFD CRIU restore flow restores previously saved object IDs from
userspace.

For event restore:

  kfd_criu_restore_event()
      -> create_signal_event() / create_other_event()
          -> allocate_event_notification_slot()
              -> idr_alloc(..., *restore_id, *restore_id + 1, ...)

For BO restore:

  criu_restore_memory_of_gpu()
      -> idr_alloc(..., bo_priv->idr_handle, ...)

In both cases, the restored ID comes from userspace-provided CRIU data.

idr_alloc() expects the ID range values to fit within signed int
limits. If a restored ID is larger than INT_MAX, it can trigger a WARN
in the IDR layer.

A kernel WARN is undesirable because it prints a warning trace and may
cause a panic or reboot on systems with panic_on_warn enabled.

Smatch reported these paths as allowing unchecked userspace values to
reach idr_alloc().

Add INT_MAX validation before using restored IDs in:

- kfd_criu_restore_event()
- criu_restore_memory_of_gpu()

If the restored ID is invalid, return -EINVAL.

This prevents invalid restore data from reaching the IDR layer and
avoids WARN-triggering paths, while keeping valid restore behavior
unchanged.

The Linux kernel CVE team has assigned CVE-2026-80870 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.18 with commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 and fixed in 6.1.178 with commit f8687018f24037056692c1e93c7d96cc72889d5b
	Issue introduced in 5.18 with commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 and fixed in 6.6.145 with commit 89a75e3349c4fae28cbedc711bc924cbc6293da2
	Issue introduced in 5.18 with commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 and fixed in 6.12.97 with commit 085ea93bda71fee600cc12a17026598eb10dd1f9
	Issue introduced in 5.18 with commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 and fixed in 6.18.40 with commit 543ed0f61d56501cc585162da600bbedd7c08c0f
	Issue introduced in 5.18 with commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 and fixed in 7.1.5 with commit cb6311f25a096621ac7ffd91b50d1bb1cfb63a96
	Issue introduced in 5.18 with commit 40e8a766a761f7fdc8530347527b344fddf6f1a8 and fixed in 7.2 with commit 85043dd49c2f51a37b22618168e3ae59ab92f0d6

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-80870
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
	drivers/gpu/drm/amd/amdkfd/kfd_events.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/f8687018f24037056692c1e93c7d96cc72889d5b
	https://git.kernel.org/stable/c/89a75e3349c4fae28cbedc711bc924cbc6293da2
	https://git.kernel.org/stable/c/085ea93bda71fee600cc12a17026598eb10dd1f9
	https://git.kernel.org/stable/c/543ed0f61d56501cc585162da600bbedd7c08c0f
	https://git.kernel.org/stable/c/cb6311f25a096621ac7ffd91b50d1bb1cfb63a96
	https://git.kernel.org/stable/c/85043dd49c2f51a37b22618168e3ae59ab92f0d6

                 reply	other threads:[~2026-09-04 16:51 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2026090434-CVE-2026-80870-d17a@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=cve@kernel.org \
    --cc=gregkh@kernel.org \
    --cc=linux-cve-announce@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.