CVE-2026-23086: vsock/virtio: cap TX credit to local buffer size
In the Linux kernel, the following vulnerability has been resolved:
vsock/virtio: cap TX credit to local buffer size
The virtio transports derives its TX credit directly from peer_buf_alloc,
which is set from the remote endpoint's SO_VM_SOCKETS_BUFFER_SIZE value.
On the host side this means that the amount of data we are willing to
queue for a connection is scaled by a guest-chosen buffer size, rather
than the host's own vsock configuration. A malicious guest can advertise
a large buffer and read slowly, causing the host to allocate a
correspondingly large amount of sk_buff memory.
The same thing would happen in the guest with a malicious host, since
virtio transports share the same code base.
Introduce a small helper, virtio_transport_tx_buf_size(), that
returns min(peer_buf_alloc, buf_alloc), and use it wherever we consume
peer_buf_alloc.
This ensures the effective TX window is bounded by both the peer's
advertised buffer and our own buf_alloc (already clamped to
buffer_max_size via SO_VM_SOCKETS_BUFFER_MAX_SIZE), so a remote peer
cannot force the other to queue more data than allowed by its own
vsock settings.
On an unpatched Ubuntu 22.04 host (~64 GiB RAM), running a PoC with
32 guest vsock connections advertising 2 GiB each and reading slowly
drove Slab/SUnreclaim from ~0.5 GiB to ~57 GiB; the system only
recovered after killing the QEMU process. That said, if QEMU memory is
limited with cgroups, the maximum memory used will be limited.
With this patch applied:
Before:
MemFree: ~61.6 GiB
Slab: ~142 MiB
SUnreclaim: ~117 MiB
After 32 high-credit connections:
MemFree: ~61.5 GiB
Slab: ~178 MiB
SUnreclaim: ~152 MiB
Only ~35 MiB increase in Slab/SUnreclaim, no host OOM, and the guest
remains responsive.
Compatibility with non-virtio transports:
- VMCI uses the AF_VSOCK buffer knobs to size its queue pairs per
socket based on the local vsk->buffer_* values; the remote side
cannot enlarge those queues beyond what the local endpoint
configured.
- Hyper-V's vsock transport uses fixed-size VMBus ring buffers and
an MTU bound; there is no peer-controlled credit field comparable
to peer_buf_alloc, and the remote endpoint cannot drive in-flight
kernel memory above those ring sizes.
- The loopback path reuses virtio_transport_common.c, so it
naturally follows the same semantics as the virtio transport.
This change is limited to virtio_transport_common.c and thus affects
virtio-vsock, vhost-vsock, and loopback, bringing them in line with the
"remote window intersected with local policy" behaviour that VMCI and
Hyper-V already effectively have.
[Stefano: small adjustments after changing the previous patch]
[Stefano: tweak the commit message]
Security readout for executives and security teams
Plain-English summary
A malicious virtual machine or host can make the other side retain excessive kernel memory through Linux virtio-vsock connections. Testing described in the CVE drove an unpatched 64 GiB Ubuntu host close to memory exhaustion. The likely business impact is service disruption or host instability, not data theft.
Executive priority
Treat this as a high-priority availability issue on virtualization infrastructure hosting untrusted workloads. Patch exposed systems promptly and apply QEMU memory limits as interim containment. Systems without the affected transports or hostile host-guest relationships are lower priority. There is no supplied evidence of active exploitation.
Technical view
Virtio transports trusted the peer-controlled peer_buf_alloc value as the transmit credit. A peer advertising a very large receive buffer while reading slowly could force excessive sk_buff allocation. The fix caps effective credit at the smaller of the peer-advertised value and the locally configured buffer allocation. It covers virtio-vsock, vhost-vsock, and loopback.
Likely exposure
Exposure is concentrated in Linux systems using virtio-vsock, vhost-vsock, or the shared loopback implementation across an untrusted host-guest boundary. Multi-tenant virtualization and environments running untrusted guests deserve priority. The supplied record identifies affected Linux versions, but its version data is insufficiently clear for reliable package-level decisions.
Exploitation context
The CVE describes a successful proof-of-concept causing severe host memory pressure with 32 slow-reading guest connections. KEV is false, and the supplied sources do not establish active exploitation in the wild. Exploitation requires control of the peer endpoint, such as a malicious guest against its host or a malicious host against its guest.
Researcher notes
The affected logic is limited to virtio_transport_common.c. The correction applies local policy by using min(peer_buf_alloc, buf_alloc). The source states VMCI already sizes queues locally and Hyper-V uses bounded ring buffers without comparable peer-controlled credit. Exact vulnerable and fixed distribution package versions require vendor confirmation.
Mitigation direction
Install a vendor kernel update containing the applicable upstream fix or backport.
Use cgroup memory limits for QEMU where immediate patching is unavailable.
Prioritize hosts running untrusted guests or exposing virtio-vsock across trust boundaries.
Consult distribution and appliance vendor guidance for exact fixed package versions.
Validation and detection
Inventory systems using virtio-vsock, vhost-vsock, or the shared loopback transport.
Confirm installed kernels contain the relevant fix commit or an identified vendor backport.
Verify QEMU memory limits on systems awaiting kernel updates.
Monitor slab and unreclaimable kernel memory for abnormal growth during vsock activity.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-23086 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.