CVE-2026-97900
In the Linux kernel, the following vulnerability has been resolved:
drm/drm_exec: fix up contended obj when num_objects is 0
drm_exec_prepare_array() silently returns success without calling drm_exec_lock_contended() when num_objects is zero. This breaks the invariant upheld by drm_exec_lock_obj(), where every entry point into the locking sequence must first attempt to lock any previously contended object before proceeding.
Drivers that chain multiple drm_exec_prepare_array() calls per drm_exec_until_all_locked() iteration (e.g. amdgpu's userq signal/wait ioctls, which prepare separate read and write BO arrays) can pass an empty array for one of the two calls.
Leer descripción completaMostrar menos
If contention is hit while preparing the non-empty array, exec->contended is set and the loop retries; on retry, the empty-array call preceding it is a no-op that never clears exec->contended, so drm_exec_retry_on_contention() immediately jumps back to the top of the loop without ever reaching the call that would resolve the contention. This spins forever.
Fix it by having drm_exec_prepare_array() call drm_exec_lock_contended() directly when num_objects is zero, so a pending contended object dont loop infinitely.
CVSS
NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.17%
- Percentil entre todas las CVEs puntuadas: 5
- Fecha de la puntuación: 5/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
Referencias
- https://git.kernel.org/stable/c/159720704d9d652b64390c11fb971e15b0a78d23
- https://git.kernel.org/stable/c/506cfed91e50cc8055799480a2fde5a18f63a21c
- https://git.kernel.org/stable/c/831cd124ce99c3e61266bed30519d52f7c26abed
- https://git.kernel.org/stable/c/a565022c02f218ec9789c2baf4690792e7a48cbb
- https://git.kernel.org/stable/c/f3e74866018dab793ebee1fdf0ef34f7271d1f8c
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-97900",
"cveTags": [],
"metrics": {},
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "09593216bff15866f95c8ad406cb7fdcec1ee40a",
"lessThan": "506cfed91e50cc8055799480a2fde5a18f63a21c",
"versionType": "git"
},
{
"status": "affected",
"version": "09593216bff15866f95c8ad406cb7fdcec1ee40a",
"lessThan": "831cd124ce99c3e61266bed30519d52f7c26abed",
"versionType": "git"
},
{
"status": "affected",
"version": "09593216bff15866f95c8ad406cb7fdcec1ee40a",
"lessThan": "f3e74866018dab793ebee1fdf0ef34f7271d1f8c",
"versionType": "git"
},
{
"status": "affected",
"version": "09593216bff15866f95c8ad406cb7fdcec1ee40a",
"lessThan": "a565022c02f218ec9789c2baf4690792e7a48cbb",
"versionType": "git"
},
{
"status": "affected",
"version": "09593216bff15866f95c8ad406cb7fdcec1ee40a",
"lessThan": "159720704d9d652b64390c11fb971e15b0a78d23",
"versionType": "git"
}
],
"programFiles": [
"drivers/gpu/drm/drm_exec.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "6.6"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.6",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.7",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3-rc3",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/gpu/drm/drm_exec.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-09-25T11:17:16.787",
"references": [
{
"url": "https://git.kernel.org/stable/c/159720704d9d652b64390c11fb971e15b0a78d23",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/506cfed91e50cc8055799480a2fde5a18f63a21c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/831cd124ce99c3e61266bed30519d52f7c26abed",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/a565022c02f218ec9789c2baf4690792e7a48cbb",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f3e74866018dab793ebee1fdf0ef34f7271d1f8c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/drm_exec: fix up contended obj when num_objects is 0\n\ndrm_exec_prepare_array() silently returns success without calling\ndrm_exec_lock_contended() when num_objects is zero. This breaks the\ninvariant upheld by drm_exec_lock_obj(), where every entry point into\nthe locking sequence must first attempt to lock any previously\ncontended object before proceeding.\n\nDrivers that chain multiple drm_exec_prepare_array() calls per\ndrm_exec_until_all_locked() iteration (e.g. amdgpu's userq signal/wait\nioctls, which prepare separate read and write BO arrays) can pass an\nempty array for one of the two calls. If contention is hit while\npreparing the non-empty array, exec->contended is set and the loop\nretries; on retry, the empty-array call preceding it is a no-op that\nnever clears exec->contended, so drm_exec_retry_on_contention()\nimmediately jumps back to the top of the loop without ever reaching\nthe call that would resolve the contention. This spins forever.\n\nFix it by having drm_exec_prepare_array() call drm_exec_lock_contended()\ndirectly when num_objects is zero, so a pending contended object dont\nloop infinitely."
}
],
"lastModified": "2026-10-03T11:18:08.493",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}