CVE-2026-53181
Received Received - Intake
Buffer Overflow in Linux Kernel vsock/vmci

Publication date: 2026-06-25

Last updated on: 2026-06-25

Assigner: kernel.org

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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-25
Last Modified
2026-06-25
Generated
2026-06-25
AI Q&A
2026-06-25
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Executive Summary

This vulnerability exists in the Linux kernel's vsock/vmci component. It occurs because when the function vmci_transport_recv_connecting_server() returns an error, the subsequent call to vsock_remove_pending() does not properly balance the socket backlog counters by calling sk_acceptq_removed(). This causes the sk_ack_backlog counter to increase permanently.

Repeated handshake failures, such as those caused by malformed packets or allocation failures, cause the sk_ack_backlog to grow until it reaches its maximum limit (sk_max_ack_backlog). Once this limit is reached, the listener refuses all new connections silently by returning an ECONNREFUSED error, effectively causing a denial of service that requires restarting the process to recover.

The fix involves ensuring that sk_acceptq_added() and sk_acceptq_removed() calls are balanced even on error paths to prevent the backlog from permanently increasing.

Impact Analysis

This vulnerability can cause a denial of service condition on systems using the affected Linux kernel vsock/vmci component. Specifically, repeated handshake failures can cause the socket backlog to fill up and permanently refuse new incoming connections.

As a result, services relying on these connections will become unavailable until the affected process is restarted, potentially causing downtime and disruption.

Mitigation Strategies

The vulnerability causes a permanent increment of sk_ack_backlog on repeated handshake failures, leading to a silent denial of service where the listener refuses new connections until the process is restarted.

An immediate mitigation step is to restart the affected process to recover from the denial of service condition.

For a permanent fix, update the Linux kernel to a version where the issue is resolved by balancing sk_acceptq_added() with sk_acceptq_removed() on the error path in the vsock/vmci code.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-53181. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart