Overview
About vulnerability
In the Linux kernel, the following vulnerability has been resolved: vsock/virtio: fix empty payload in tap skb for non-linear buffers For non-linear skbs, virtio_transport_build_skb() goes through virtio_transport_copy_nonlinear_skb() to copy the original payload in the new skb to be delivered to the vsockmon tap device. This manually initializes an iov_iter but does not set iov_iter.count. Since the iov_iter is zero-initialized, the copy length is zero and no payload is actually copied to the monitor interface, leaving data un-initialized. Fix this by removing the linear vs non-linear split and using skb_copy_datagram_iter() with iov_iter_kvec() for all cases, as vhost-vsock already does. This handles both linear and non-linear skbs, properly initializes the iov_iter, and removes the now unused virtio_transport_copy_nonlinear_skb(). While touching this code, let’s also check the return value of skb_copy_datagram_iter(), even though it’s unlikely to fail. A flaw was found in the Linux kernel’svsock/virtio component. When processing non-linear data buffers for the vsockmon tap device, the system did not correctly initialize the payload. This oversight could lead to uninitialized data being copied to the monitoring interface, potentially resulting in inaccurate data transmission or unintended information exposure.
Details
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| Debian 13 | Released |
8 kernels
|
| Ubuntu 24.04 | Planned | — |