CVE-2026-80932

vsock/virtio: flush works in dependency order

State
Published
Severity
8.4 High
Published
Sep 11, 2026
Updated
Oct 19, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

vsock/virtio: flush works in dependency order

virtio_vsock_remove() stops the virtqueues and then flushes each work item before freeing the enclosing virtio_vsock. The current order does not account for dependencies between those items: tx_work may queue send_pkt_work, and send_pkt_work may queue rx_work.

In particular, send_pkt_work can set restart_rx and release tx_lock. The remove path can then stop the queues and flush rx_work before send_pkt_work queues it. Although the later send_pkt_work flush waits for that producer to finish, nothing waits for the newly queued rx_work, so kfree(vsock) can race with it.

KASAN reported:

BUG: KASAN: slab-use-after-free in virtio_transport_rx_work+0x487/0x4b0 Read of size 8 at addr ffff888114c2b008 by task kworker/1:1/47 Workqueue: virtio_vsock virtio_transport_rx_work Call Trace: virtio_transport_rx_work+0x487/0x4b0 process_one_work+0x688/0x1120 worker_thread+0x45b/0xd10 Allocated by task 1: virtio_vsock_probe+0xef/0x6b0 Freed by task 84: kfree+0x131/0x3c0 virtio_vsock_remove+0xd1/0x100

Flush the works in producer-to-consumer order. virtio_vsock_vqs_del() has already disabled the queue callbacks and cleared the run flags, so after tx_work and send_pkt_work are drained, no source remains that can queue rx_work after its flush.

Scores

CVSSScoreVectorSource
3.18.4 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 to before e059a14c1067bcc4f7b1947cd09f2baab98e340fAffected
  • 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 to before 531e2ac2dab1ab90a16427c4f9c86663633e9487Affected
  • 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 to before f3313d952fc380cff53db9a28451a8807aa67b43Affected
  • 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 to before b9cb4e8ba71c9fbd935d66baa71bbb0b87192c94Affected
  • 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 to before 2187a56f2fd1715d54daed6392809223c60544f3Affected
  • 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 to before 165a330a68b5f299d8735f0194c314cb2e571269Affected
  • 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 to before da5e9f08714c19ba04e6863aca69d40f042f2e04Affected
  • 0ea9e1d3a9e3ef7d2a1462d3de6b95131dc7d872 to before 728836ebca239810f164262b10211ef59182f811Affected
LinuxLinux
  • 4.8Affected
  • before 4.8Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 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.