Linux kernel drm/xe OOB read via madvise IOCTL pat_index bug
CVE-2026-43280 Published on May 6, 2026
drm/xe: Add bounds check on pat_index to prevent OOB kernel read in madvise
In the Linux kernel, the following vulnerability has been resolved:
drm/xe: Add bounds check on pat_index to prevent OOB kernel read in madvise
When user provides a bogus pat_index value through the madvise IOCTL, the
xe_pat_index_get_coh_mode() function performs an array access without
validating bounds. This allows a malicious user to trigger an out-of-bounds
kernel read from the xe->pat.table array.
The vulnerability exists because the validation in madvise_args_are_sane()
directly calls xe_pat_index_get_coh_mode(xe, args->pat_index.val) without
first checking if pat_index is within [0, xe->pat.n_entries).
Although xe_pat_index_get_coh_mode() has a WARN_ON to catch this in debug
builds, it still performs the unsafe array access in production kernels.
v2(Matthew Auld)
- Using array_index_nospec() to mitigate spectre attacks when the value
is used
v3(Matthew Auld)
- Put the declarations at the start of the block
(cherry picked from commit 944a3329b05510d55c69c2ef455136e2fc02de29)
Products Associated with CVE-2026-43280
Want to know whenever a new CVE is published for Linux Kernel? stack.watch will email you.
Affected Versions
Linux:- Version ada7486c5668db542a7d361268df931aca5b726a and below ffba51100ff61792fefbae11ca38ac1987a818dd is affected.
- Version ada7486c5668db542a7d361268df931aca5b726a and below 79f52655567a6471ff3d0d6325ede91bb14461f4 is affected.
- Version ada7486c5668db542a7d361268df931aca5b726a and below fbbe32618e97eff81577a01eb7d9adcd64a216d7 is affected.
- Version 6.18 is affected.
- Before 6.18 is unaffected.
- Version 6.18.16, <= 6.18.* is unaffected.
- Version 6.19.6, <= 6.19.* is unaffected.
- Version 7.0, <= * is unaffected.