CVE-2026-90129
In the Linux kernel, the following vulnerability has been resolved:
virtio_balloon: quiesce balloon work before device shutdown
Commit 8bd2fa086a04 ("virtio: break and reset virtio devices on device_shutdown()") added a generic virtio bus .shutdown handler that breaks and resets every virtio device during device_shutdown(), i.e. on reboot and kexec.
virtio_balloon provides no .shutdown of its own, so that generic path runs while the balloon's asynchronous work is still armed.
Leer descripción completaMostrar menos
Once the device has been broken, virtqueue_add_inbuf() in virtballoon_free_page_report() returns -EIO and trips its WARN_ON_ONCE(). On a kernel booted with panic_on_warn that turns an ordinary reboot, for example a kexec based upgrade, into a fatal panic in the middle of device_shutdown(), so the machine never reaches the new kernel.
Relaxing that single WARN_ON_ONCE() would only hide the symptom: the inflate/deflate and OOM paths do not warn, they call wait_event(vb->acked, ...) and would instead block forever on a broken queue that can no longer complete. The device has to be quiesced, not just kept quiet.
Add a .shutdown handler that quiesces the balloon via the shared virtballoon_quiesce() helper while the device is still alive, and only then breaks and resets it via virtio_device_shutdown(). Unlike virtballoon_remove() the balloon workqueue is not destroyed, as shutdown does not free the device and cancel_work_sync() together with stop_update already prevent any further work from being queued.
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.21%
- Percentil entre todas las CVEs puntuadas: 10
- Fecha de la puntuación: 6/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
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-90129",
"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": "8bd2fa086a04886798b505f28db4002525895203",
"lessThan": "6dd28e32f4d81a0d57c732b9900de24184e60a7d",
"versionType": "git"
},
{
"status": "affected",
"version": "8bd2fa086a04886798b505f28db4002525895203",
"lessThan": "bdef50a8226fc04899ef6815dd08a002247d47d5",
"versionType": "git"
},
{
"status": "affected",
"version": "8bd2fa086a04886798b505f28db4002525895203",
"lessThan": "7e17eef04600c399c7e0f5ce765da5cf9d40d8e1",
"versionType": "git"
},
{
"status": "affected",
"version": "aee42f3d57bfa37b2716df4584edeecf63b9df4c",
"versionType": "git"
},
{
"status": "affected",
"version": "6.14.9",
"lessThan": "6.15",
"versionType": "semver"
}
],
"programFiles": [
"drivers/virtio/virtio_balloon.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.15"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.15",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3-rc1",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/virtio/virtio_balloon.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-09-17T17:17:05.370",
"references": [
{
"url": "https://git.kernel.org/stable/c/6dd28e32f4d81a0d57c732b9900de24184e60a7d",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/7e17eef04600c399c7e0f5ce765da5cf9d40d8e1",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/bdef50a8226fc04899ef6815dd08a002247d47d5",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio_balloon: quiesce balloon work before device shutdown\n\nCommit 8bd2fa086a04 (\"virtio: break and reset virtio devices on\ndevice_shutdown()\") added a generic virtio bus .shutdown handler that\nbreaks and resets every virtio device during device_shutdown(), i.e. on\nreboot and kexec.\n\nvirtio_balloon provides no .shutdown of its own, so that generic path\nruns while the balloon's asynchronous work is still armed. Once the\ndevice has been broken, virtqueue_add_inbuf() in\nvirtballoon_free_page_report() returns -EIO and trips its\nWARN_ON_ONCE(). On a kernel booted with panic_on_warn that turns an\nordinary reboot, for example a kexec based upgrade, into a fatal panic\nin the middle of device_shutdown(), so the machine never reaches the\nnew kernel.\n\nRelaxing that single WARN_ON_ONCE() would only hide the symptom: the\ninflate/deflate and OOM paths do not warn, they call\nwait_event(vb->acked, ...) and would instead block forever on a broken\nqueue that can no longer complete. The device has to be quiesced, not\njust kept quiet.\n\nAdd a .shutdown handler that quiesces the balloon via the shared\nvirtballoon_quiesce() helper while the device is still alive, and only\nthen breaks and resets it via virtio_device_shutdown(). Unlike\nvirtballoon_remove() the balloon workqueue is not destroyed, as shutdown\ndoes not free the device and cancel_work_sync() together with stop_update\nalready prevent any further work from being queued."
}
],
"lastModified": "2026-09-17T17:17:05.370",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}