KernelScan.io

HIGH Introduced in 2.6.12

xen-netback XenBus UAF

CVE-2026-99286

CVSS 7.8 / 10.0 KernelScan AI

CVSS:3.1/AV:A/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H

01

In the Linux kernel, the following vulnerability has been resolved: xen-netback: Fix XenBus connection failure cleanup xenvif_get_stats and xenvif_get_ethtool_stats capture vif->num_queues under rcu_read_lock. We need to unpublish vif->num_queues before synchronize_net to ensure that readers that come afterwards will not read a non-zero vif->num_queues and attempt to access invalid queues. This is the same cleanup algorithm as used in backend_disconnect and added in commit b17075d5c198 ("xen-netback: fix race condition on XenBus disconnect"). This is XSA-531

02

Engine v0.10.0

Risk summary

A malicious Xen guest (domU) can trigger a use-after-free in the host's xen-netback driver during XenBus connection failure cleanup, potentially achieving guest-to-host escape with arbitrary kernel memory read/write and code execution in dom0. The vulnerability affects any system running the Xen network backend driver with multiple guest VMs.

Affecteddrivers/net/xen-netback/xenbus.c (xen-netback)

Vulnerability analysis

During XenBus connection failure cleanup, the xen-netback driver freed queue structures but left vif->num_queues non-zero until after synchronize_net(). RCU-protected readers (xenvif_get_stats, xenvif_get_ethtool_stats) could capture the stale non-zero queue count, pass the RCU grace period, and then dereference already-freed queue pointers. The fix moves the num_queues zeroing before synchronize_net() and uses a saved local copy for the cleanup loop, ensuring new readers see zero queues and never access freed memory. An attacker in a guest VM can trigger this by causing a connection failure at the right moment during frontend/backend negotiation.

03

BranchIntroducedFixed inPatch commit
6.122.6.126.12.117ade3082dcdee
6.182.6.126.18.63a97aa838903d
7.32.6.127.3.407aca7d25ce8

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Affected — no CIP fix yet (latest 6.12.114-cip34)
cip/6.1Affected — no CIP fix yet (latest 6.1.190-cip62)
cip/6.1-rtAffected — no CIP fix yet (latest 6.1.189-cip61-rt32)
cip/5.10Affected — no CIP fix yet (latest 5.10.272-cip79)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.272-cip79-rt35)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)