CVE-2026-46207: vsock/virtio: fix empty payload in tap skb for non-linear buffers
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, virtiotransportbuildskb() goes through virtiotransportcopynonlinearskb() to copy the original payload in the new skb to be delivered to the vsockmon tap device. This manually initializes an ioviter but does not set ioviter.count. Since the ioviter 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 skbcopydatagramiter() with ioviterkvec() for all cases, as vhost-vsock already does. This handles both linear and non-linear skbs, properly initializes the ioviter, and removes the now unused virtiotransportcopynonlinearskb().
While touching this code, let's also check the return value of skbcopydatagramiter(), even though it's unlikely to fail.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-46207?
CVE-2026-46207 has a severity score of 15, indicating a high risk vulnerability.
How do I fix CVE-2026-46207?
To fix CVE-2026-46207, update the Linux kernel to the latest patched version that addresses this vulnerability.
What type of systems are affected by CVE-2026-46207?
CVE-2026-46207 affects systems using the Linux kernel with the vsock/virtio subsystem.
What is the impact of CVE-2026-46207?
The impact of CVE-2026-46207 can lead to data corruption due to handling of empty payloads in non-linear buffers.
When was CVE-2026-46207 published?
CVE-2026-46207 was published on May 28, 2026.