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

vsock/vmci: fix sk_ack_backlog leak on failed handshake

When vmci_transport_recv_connecting_server() returns an error,
vmci_transport_recv_listen() calls vsock_remove_pending() but never
calls sk_acceptq_removed(). This leaves sk_ack_backlog incremented
permanently.

Repeated handshake failures (malformed packets, queue pair alloc
failure, event subscribe failure) cause sk_ack_backlog to climb
toward sk_max_ack_backlog. Once it reaches the limit the listener
permanently refuses all new connections with -ECONNREFUSED, a
silent denial of service requiring a process restart to recover.

The two existing sk_acceptq_removed() calls in af_vsock.c do not
cover this path: line 764 checks vsock_is_pending() which returns
false after vsock_remove_pending(), and line 1889 is only reached
on successful accept().

Fix by balancing sk_acceptq_added() with sk_acceptq_removed() on
the error path.
Published: 2026-06-25
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel has a resource management flaw in the vsock/VMCI subsystem: when a handshake fails, the sk_ack_backlog counter is not decremented, thereby permanently inflating the backlog. As each failed handshake increments sk_ack_backlog, repeated failures eventually saturate the backlog limit, after which the listener refuses all new connection attempts with a silent ECONNREFUSED error. This denial of service can persist until the system is rebooted or the kernel process is restarted, and it does not affect any user data directly.

Affected Systems

Linux kernels containing the vsock/VMCI implementation before the patch – any deployment that has not applied the recent kernel update that balances sk_acceptq_added and sk_acceptq_removed will be vulnerable.

Risk and Exploitability

An attacker who can generate malformed vsock packets or otherwise force handshake failures – from a guest VM, a privileged process, or network traffic – can gradually drive sk_ack_backlog to its maximum. Because the backlog counter is never reset automatically, the resulting denial of service is irreversible until a reboot. The EPSS score is unavailable, the CVSS score is not disclosed, and the flaw is not listed in the CISA KEV catalog; thus, exploitation is less likely to be observed but the impact is severe if achieved.

Generated by OpenCVE AI on June 25, 2026 at 11:58 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the sk_ack_backlog fix for vsock/VMCI.
  • If the listener is refusing new connections, restart the kernel or reboot the system to clear the backlog.
  • In the interim, monitor vsock activity and restrict malformed packet traffic by configuring firewall rules or disabling unnecessary VMCI usage.
  • If custom kernel modules interact with vsock, ensure they properly balance sk_acceptq_added and sk_acceptq_removed even on error paths to prevent similar leaks.

Generated by OpenCVE AI on June 25, 2026 at 11:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 25 Jun 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-399

Thu, 25 Jun 2026 09:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: vsock/vmci: fix sk_ack_backlog leak on failed handshake When vmci_transport_recv_connecting_server() returns an error, vmci_transport_recv_listen() calls vsock_remove_pending() but never calls sk_acceptq_removed(). This leaves sk_ack_backlog incremented permanently. Repeated handshake failures (malformed packets, queue pair alloc failure, event subscribe failure) cause sk_ack_backlog to climb toward sk_max_ack_backlog. Once it reaches the limit the listener permanently refuses all new connections with -ECONNREFUSED, a silent denial of service requiring a process restart to recover. The two existing sk_acceptq_removed() calls in af_vsock.c do not cover this path: line 764 checks vsock_is_pending() which returns false after vsock_remove_pending(), and line 1889 is only reached on successful accept(). Fix by balancing sk_acceptq_added() with sk_acceptq_removed() on the error path.
Title vsock/vmci: fix sk_ack_backlog leak on failed handshake
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-06-25T08:38:55.994Z

Reserved: 2026-06-09T07:44:35.390Z

Link: CVE-2026-53181

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-25T12:00:14Z

Weaknesses