In the Linux kernel, the following vulnerability has been resolved:
drm/xe/guc: Fix buffer overflow in steered register list allocation
The size calculation for the steered register extarray uses only the geometry DSS mask (gdssmask) to determine the number of entries to allocate:
total = bitmapweight(gt->fusetopo.gdssmask, ...) * steerregnum;
However, the filling loop uses foreachdsssteering(), which iterates over foreachdss(), defined as the union of gdssmask and cdss_mask (geometry + compute DSS). On platforms with compute-only DSS bits, the loop writes past the allocated buffer, corrupting adjacent slab objects.
This manifests as listdel corruption and SLUB redzone overwrites during drmmanagedrelease on device unbind, since the overflow corrupts the drmres listhead of neighboring allocations.
Fix by computing the allocation size using the union of both DSS masks, matching the iteration pattern of foreachdss_steering().
-- v2: - use bitmapweightedor() (Zhanjun)
(cherry picked from commit 0a78a44f4901aa6c9263e66be7fce02282f1109f)
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68274.json",
"cna_assigner": "Linux"
}