CVE-2025-40248

CVE-2025-40248

High · published December 4, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
4.5
In the wild
Unconfirmed
What it is

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

vsock: Ignore signal/timeout on connect() if already established

During connect(), acting on a signal/timeout by disconnecting an already

established socket leads to several issues:

1. connect() invoking vsock_transport_cancel_pkt() ->

virtio_transport_purge_skbs() may race with sendmsg() invoking

virtio_transport_get_credit(). This results in a permanently elevated

`vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling.

2. connect() resetting a connected socket's state may race with socket

being placed in a sockmap. A disconnected socket remaining in a sockmap

breaks sockmap's assumptions. And gives rise to WARNs.

3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a

transport change/drop after TCP_ESTABLISHED. Which poses a problem for

any simultaneous sendmsg() or connect() and may result in a

use-after-free/null-ptr-deref.

Do not disconnect socket on signal/timeout. Keep the logic for unconnected

sockets: they don't linger, can't be placed in a sockmap, are rejected by

sendmsg().

[1]: https://lore.kernel.org/netdev/[email protected]/

[2]: https://lore.kernel.org/netdev/[email protected]/

[3]: https://lore.kernel.org/netdev/[email protected]/

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00157 · 4.5th percentile
Published
2025-12-04T21:16Z
References (9)
EPSS history
Timeline
  • 04 DEC 16:08Z
    vsock: Ignore signal/timeout on connect() if already established
    cvelistv5