Description
In the Linux kernel, the following vulnerability has been resolved:

vsock/virtio: validate packet source for connected sockets

virtio_transport_recv_pkt() looks up sockets first by the full source and
destination tuple, then by destination only in the bound table. The
fallback is needed for listening and connecting sockets, but sockets remain
in the bound table after connect(), so it can also return a non-listening
socket.

The fallback does not validate the source address. In TCP_SYN_SENT, a
RESPONSE from an unrelated source can transition the victim socket to
TCP_ESTABLISHED while its stored remote address remains unchanged.
Subsequent RW packets from that source are delivered through the same
destination-only fallback.

This was reproduced with capability-empty processes under different UIDs.
The attacker discovered the target tuple through unprivileged AF_VSOCK
sock_diag and caused the victim socket to read 16 attacker-chosen bytes;
the intended peer-side socket read 0 of those 16 bytes.

Add vsock_check_source() to validate the transport, source port and source
CID against the peer stored in a non-listening socket. The local transport
is the CID exception because its packets are generated internally with
VMADDR_CID_LOCAL as their source, including connections using CID aliases.

Use the helper after lock_sock() in the virtio receive path.
Published: 2026-10-28
Score: n/a
EPSS: n/a
KEV: No
Impact: Potential Remote Code Execution via socket hijacking
Action: Immediate Patch
AI Analysis

Impact

The Linux kernel’s virtio_transport_recv_pkt() function does not validate the source of packets for connected VSOCK sockets. If a socket is already in the established state, a packet that originates from an unrelated source can be matched by the fallback destination‑only lookup, causing the socket to transition to TCP_ESTABLISHED while the stored remote address remains unchanged. An attacker can then send arbitrary data that will be read by the victim process, enabling data injection or potential code execution. This flaw is an instance of improper source validation, represented by CWE‑20.

Affected Systems

Any Linux kernel build that incorporates virtio VSOCK networking and has not applied the commit adding vsock_check_source() is vulnerable. The flaw was fixed in later kernel releases, but no specific affected version range is provided in the CNA data. Therefore, all kernels using the virtio transport prior to the patch should be considered at risk.

Risk and Exploitability

CVSS and EPSS scores are not available, and the vulnerability is not listed in the CISA KEV catalog. However, the flaw allows an attacker with access to the VSOCK network to hijack a socket and inject arbitrary payloads, which could lead to remote code execution if the victim application processes data unsafely. Discovery of the target socket requires only unprivileged AF_VSOCK sock_diag calls and knowledge of the victim’s CID and port, conditions that are realistically obtainable within a virtualized environment. These factors, combined with the absence of a validation check, make the vulnerability high risk and should prompt prompt remediation.

Generated by OpenCVE AI on October 28, 2026 at 12:42 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Deploy a kernel build that includes the vsock_check_source() patch (commit 6cd829de69…).
  • Reboot the system to ensure the patched kernel is active.
  • If using a vendor-supplied kernel, apply the vendor's security update or backport the patch, and configure the virtualization host to restrict VSOCK connections to trusted CID ranges.

Generated by OpenCVE AI on October 28, 2026 at 12:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 28 Oct 2026 13:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20

Wed, 28 Oct 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: vsock/virtio: validate packet source for connected sockets virtio_transport_recv_pkt() looks up sockets first by the full source and destination tuple, then by destination only in the bound table. The fallback is needed for listening and connecting sockets, but sockets remain in the bound table after connect(), so it can also return a non-listening socket. The fallback does not validate the source address. In TCP_SYN_SENT, a RESPONSE from an unrelated source can transition the victim socket to TCP_ESTABLISHED while its stored remote address remains unchanged. Subsequent RW packets from that source are delivered through the same destination-only fallback. This was reproduced with capability-empty processes under different UIDs. The attacker discovered the target tuple through unprivileged AF_VSOCK sock_diag and caused the victim socket to read 16 attacker-chosen bytes; the intended peer-side socket read 0 of those 16 bytes. Add vsock_check_source() to validate the transport, source port and source CID against the peer stored in a non-listening socket. The local transport is the CID exception because its packets are generated internally with VMADDR_CID_LOCAL as their source, including connections using CID aliases. Use the helper after lock_sock() in the virtio receive path.
Title vsock/virtio: validate packet source for connected sockets
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-28T10:34:38.600Z

Reserved: 2026-09-25T10:25:14.393Z

Link: CVE-2026-99123

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-28T11:17:31.963

Modified: 2026-10-28T11:17:31.963

Link: CVE-2026-99123

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-28T12:45:16Z

Weaknesses
  • CWE-20

    Improper Input Validation