In the Linux kernel, the following vulnerability has been resolved: vsock/vmci: fix UAF when peer resets connection during handshake… (CVE-2026-64115)
In the Linux kernel, the following vulnerability has been resolved: vsock/vmci: fix UAF when peer resets connection during handshake vmci_transport_recv_connecting_server() returned err = 0 for a peer RST in its default switch arm: err = pkt->type == VMCI_TRANSPORT_PACKET_TYPE_RST ? 0 : -EINVAL; That made vmci_transport_recv_listen() skip vsock_remove_pending(), leaving the pending socket on the listener's pending_links with sk_state = TCP_CLOSE while destroy: still dropped the explicit reference taken before schedule_delayed_work(). One second later vsock_pending_work() observed is_pending=true and performed full cleanup: vsock_remove_pending() then the two trailing sock_put(sk) calls -- the first reached refcount 0 and __sk_freed the socket, and the second wrote into the freed object: BUG: KASAN: slab-use-after-free in refcount_warn_saturate Write of size 4 at addr ffff88800b1cac80 by task kworker Workqueue: events vsock_pending_work Treat peer RST like any other unexpected packet type (err = -EINVAL). All destroy: arms now return err < 0, so vmci_transport_recv_listen() removes pending from pending_links synchronously and vsock_pending_work() takes the is_pending=false / !rejected branch, dropping only its own work reference. This also closes the multi-packet race Sashiko reported on v2: pending is removed from the list before any subsequent packet can find it. The pre-existing sk_acceptq_removed() gap on the err < 0 path of vmci_transport_recv_listen() that Sashiko also noted is not introduced or changed by this patch. Tested on lts-6.12.79 with KASAN: 52/100 unpatched -> 0/100 patched.
AI Analysis
Technical Summary
The Linux kernel's vsock/vmci transport layer had a use-after-free vulnerability triggered when a peer sent a reset (RST) packet during the connection handshake. The function vmci_transport_recv_connecting_server() incorrectly returned success (err=0) for a peer RST, causing vmci_transport_recv_listen() to skip removal of the pending socket from the listener's pending_links list. This left the socket in a TCP_CLOSE state but still referenced, leading to a delayed cleanup that freed the socket and then attempted to access it again, causing a use-after-free detected by KASAN. The patch changes the handling to treat peer RST as an unexpected packet (err < 0), forcing synchronous removal of the pending socket and preventing the race condition and use-after-free. The fix was tested on kernel version lts-6.12.79 with KASAN, showing elimination of the error.
Potential Impact
The vulnerability could cause kernel memory corruption via a use-after-free condition in the vsock/vmci subsystem when a peer resets a connection during handshake. This may lead to kernel crashes or instability. No known exploits in the wild have been reported.
Mitigation Recommendations
A fix has been implemented and tested in the Linux kernel (e.g., lts-6.12.79). Users should apply the official kernel updates containing this patch to remediate the vulnerability. No additional mitigation is required beyond applying the patch.
In the Linux kernel, the following vulnerability has been resolved: vsock/vmci: fix UAF when peer resets connection during handshake… (CVE-2026-64115)
Description
In the Linux kernel, the following vulnerability has been resolved: vsock/vmci: fix UAF when peer resets connection during handshake vmci_transport_recv_connecting_server() returned err = 0 for a peer RST in its default switch arm: err = pkt->type == VMCI_TRANSPORT_PACKET_TYPE_RST ? 0 : -EINVAL; That made vmci_transport_recv_listen() skip vsock_remove_pending(), leaving the pending socket on the listener's pending_links with sk_state = TCP_CLOSE while destroy: still dropped the explicit reference taken before schedule_delayed_work(). One second later vsock_pending_work() observed is_pending=true and performed full cleanup: vsock_remove_pending() then the two trailing sock_put(sk) calls -- the first reached refcount 0 and __sk_freed the socket, and the second wrote into the freed object: BUG: KASAN: slab-use-after-free in refcount_warn_saturate Write of size 4 at addr ffff88800b1cac80 by task kworker Workqueue: events vsock_pending_work Treat peer RST like any other unexpected packet type (err = -EINVAL). All destroy: arms now return err < 0, so vmci_transport_recv_listen() removes pending from pending_links synchronously and vsock_pending_work() takes the is_pending=false / !rejected branch, dropping only its own work reference. This also closes the multi-packet race Sashiko reported on v2: pending is removed from the list before any subsequent packet can find it. The pre-existing sk_acceptq_removed() gap on the err < 0 path of vmci_transport_recv_listen() that Sashiko also noted is not introduced or changed by this patch. Tested on lts-6.12.79 with KASAN: 52/100 unpatched -> 0/100 patched.
CVSS v3.1
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Linux kernel's vsock/vmci transport layer had a use-after-free vulnerability triggered when a peer sent a reset (RST) packet during the connection handshake. The function vmci_transport_recv_connecting_server() incorrectly returned success (err=0) for a peer RST, causing vmci_transport_recv_listen() to skip removal of the pending socket from the listener's pending_links list. This left the socket in a TCP_CLOSE state but still referenced, leading to a delayed cleanup that freed the socket and then attempted to access it again, causing a use-after-free detected by KASAN. The patch changes the handling to treat peer RST as an unexpected packet (err < 0), forcing synchronous removal of the pending socket and preventing the race condition and use-after-free. The fix was tested on kernel version lts-6.12.79 with KASAN, showing elimination of the error.
Potential Impact
The vulnerability could cause kernel memory corruption via a use-after-free condition in the vsock/vmci subsystem when a peer resets a connection during handshake. This may lead to kernel crashes or instability. No known exploits in the wild have been reported.
Mitigation Recommendations
A fix has been implemented and tested in the Linux kernel (e.g., lts-6.12.79). Users should apply the official kernel updates containing this patch to remediate the vulnerability. No additional mitigation is required beyond applying the patch.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-c2c8-f8x2-chfh
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-64115"]
- Ecosystems
- []
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a5d27a92a4a8d598912b889
Added to database: 07/19/2026, 19:38:17 UTC
Last enriched: 07/19/2026, 19:48:36 UTC
Last updated: 07/20/2026, 19:41:21 UTC
Views: 11
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.