Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2026-23086— vsock/virtio: cap TX credit to local buffer size

EPSS 0.02% · P5
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2026-23086

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
vsock/virtio: cap TX credit to local buffer size
Source: NVD (National Vulnerability Database)
Vulnerability Description
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]
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于TX信用额度未限制,可能导致内存耗尽。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 06a8fc78367d070720af960dcecec917d3ae5f3b ~ fef7110ae5617555c792a2bb4d27878d84583adf -
LinuxLinux 4.8 -

II. Public POCs for CVE-2026-23086

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-23086

登录查看更多情报信息。

Same Patch Batch · Linux · 2026-02-04 · 79 CVEs total

CVE-2026-230988.8 HIGHnetrom: fix double-free in nr_route_frame()
CVE-2026-230777.8 HIGHmm/vma: fix anon_vma UAF on mremap() faulted, unfaulted merge
CVE-2026-230747.8 HIGHnet/sched: Enforce that teql can only be used as root qdisc
CVE-2026-231037.8 HIGHipvlan: Make the addrs_lock be per port
CVE-2026-230667.8 HIGHrxrpc: Fix recvmsg() unconditional requeue
CVE-2026-231057.8 HIGHnet/sched: qfq: Use cl_is_active to determine whether class is active in qfq_rm_from_ag
CVE-2026-230957.5 HIGHgue: Fix skb memleak with inner IP protocol 0.
CVE-2026-23063uacce: ensure safe queue release with state management
CVE-2026-23061can: kvaser_usb: kvaser_usb_read_bulk_callback(): fix URB memory leak
CVE-2026-23062platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro
CVE-2026-23064net/sched: act_ife: avoid possible NULL deref
CVE-2026-23058can: ems_usb: ems_usb_read_bulk_callback(): fix URB memory leak
CVE-2026-23057vsock/virtio: Coalesce only linear skb
CVE-2026-23056uacce: implement mremap in uacce_vm_ops to return -EPERM
CVE-2025-71199iio: adc: at91-sama5d2_adc: Fix potential use-after-free in sama5d2_adc driver
CVE-2025-71198iio: imu: st_lsm6dsx: fix iio_chan_spec for sensors without event detection
CVE-2025-71197w1: therm: Fix off-by-one buffer overflow in alarms_store
CVE-2026-23055i2c: riic: Move suspend handling to NOIRQ phase
CVE-2026-23053NFS: Fix a deadlock involving nfs_release_folio()
CVE-2026-23051drm/amdgpu: fix drm panic null pointer when driver not support atomic

Showing top 20 of 79 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2026-23086

No comments yet


Leave a comment