🛡️ CVE-2026-45878 — kernel

🟠 CVSS 7.8 — High ✅ No Known Exploit NVD
7.8
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

drm/amdkfd: Fix watch_id bounds checking in debug address watch v2

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

drm/amdkfd: Fix watch_id bounds checking in debug address watch v2

The address watch clear code receives watch_id as an unsigned value

(u32), but some helper functions were using a signed int and checked

bits by shifting with watch_id.

If a very large watch_id is passed from userspace, it can be converted

to a negative value. This can cause invalid shifts and may access

memory outside the watch_points array.

drm/amdkfd: Fix watch_id bounds checking in debug address watch v2

Fix this by checking that watch_id is within MAX_WATCH_ADDRESSES before

using it. Also use BIT(watch_id) to test and clear bits safely.

This keeps the behavior unchanged for valid watch IDs and avoids

undefined behavior for invalid ones.

Fixes the below:

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debug.c:448

kfd_dbg_trap_clear_dev_address_watch() error: buffer overflow

'pdd->watch_points' 4 <= u32max user_rl='0-3,2147483648-u32max' uncapped

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debug.c

433 int kfd_dbg_trap_clear_dev_address_watch(struct kfd_process_device *pdd,

434 uint32_t watch_id)

435 {

436 int r;

437

438 if (!kfd_dbg_owns_dev_watch_id(pdd, watch_id))

kfd_dbg_owns_dev_watch_id() doesn't check for negative values so if

watch_id is larger than INT_MAX it leads to a buffer overflow.

(Negative shifts are undefined).

439 return -EINVAL;

440

441 if (!pdd->dev->kfd->shared_resources.enable_mes) {

442 r = debug_lock_and_unmap(pdd->dev->dqm);

443 if (r)

444 return r;

445 }

446

447 amdgpu_gfx_off_ctrl(pdd->dev->adev, false);

--> 448 pdd->watch_points[watch_id] = pdd->dev->kfd2kgd->clear_address_watch(

449 pdd->dev->adev,

450 watch_id);

v2: (as per, Jonathan Kim)

  • Add early watch_id >= MAX_WATCH_ADDRESSES validation in the set path to

match the clear path.

  • Drop the redundant bounds check in kfd_dbg_owns_dev_watch_id().

How this vulnerability can be exploited

This issue can be reached with local access to the system, attack complexity is low, an attacker needs low-level privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity high, availability high.

Affected software

CVE-2026-45878 is recorded against 3 packages.

  • kernel (from 6.19.0 up to 6.19.4)
  • linux-kernel (from 6.19 up to 6.19.4)
  • unknown

Timeline and source

Published on 27 May 2026 and last revised on 6 August 2026. No public exploit is currently recorded for this entry. A vendor advisory or fix has been published. Record sourced from NVD.

References

git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
github.com (Advisory)
nvd.nist.gov (Advisory)
git.kernel.org (Package)

CVE-2026-45878 on other distributions

Each distribution ships its own build and its own fixed version. Pick the one you run:

Details

Severity High
CVSS Score 7.8
CVSS Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE N/A
Public Exploit ✅ No
Source NVD
Published 2026-05-27
Updated 2026-08-12
Modified 2026-08-06

Affected Packages

Software From version Fixed in
kernel 6.19.0 6.19.4
linux-kernel 6.19 6.19.4
unknown

Similar Threats

Site Security Check

Is kernel part of your stack?

CVE-2026-45878 is rated CVSS 7.8 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.