CVE-2026-90129

virtio_balloon: quiesce balloon work before device shutdown

State
Published
Severity
Not scored
Published
Sep 17, 2026
Updated
Oct 30, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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. 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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 8bd2fa086a04886798b505f28db4002525895203 to before 6dd28e32f4d81a0d57c732b9900de24184e60a7dAffected
  • 8bd2fa086a04886798b505f28db4002525895203 to before bdef50a8226fc04899ef6815dd08a002247d47d5Affected
  • 8bd2fa086a04886798b505f28db4002525895203 to before 7e17eef04600c399c7e0f5ce765da5cf9d40d8e1Affected
  • 0c03e32494dd0bbcc301523e5ae567c2f567a7d9Affected
  • acdfe206be6c70ec55dc8bfdb1a22036d10fae26Affected
  • 1eaa83fd94ed5e40d43139025f5acb7bcfed3b5fAffected
  • aee42f3d57bfa37b2716df4584edeecf63b9df4cAffected
  • 6.1.191 to before 6.2Affected
  • 6.6.160 to before 6.7Affected
  • 6.12.114 to before 6.13Affected
  • 6.14.9 to before 6.15Affected
LinuxLinux
  • 6.15Affected
  • before 6.15Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.