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/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/
[2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/
[3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/
Analysis and contextual insights are available on OpenCVE Cloud.
No vendor fix or workaround currently provided.
Additional remediation guidance may be available on OpenCVE Cloud.
Tracking
Sign in to view the affected projects.
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-4404-1 | linux security update |
Debian DLA |
DLA-4436-1 | linux-6.1 security update |
Ubuntu USN |
USN-8094-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8095-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8096-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8095-2 | Linux kernel (FIPS) vulnerabilities |
Ubuntu USN |
USN-8096-2 | Linux kernel (FIPS) vulnerabilities |
Ubuntu USN |
USN-8100-1 | Linux kernel (NVIDIA) vulnerabilities |
Ubuntu USN |
USN-8094-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8095-3 | Linux kernel (Real-time) vulnerabilities |
Ubuntu USN |
USN-8096-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8096-4 | Linux kernel (Real-time) vulnerabilities |
Ubuntu USN |
USN-8095-4 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-8096-5 | Linux kernel (NVIDIA Tegra IGX) vulnerabilities |
Ubuntu USN |
USN-8116-1 | Linux kernel (Intel IoTG Real-time) vulnerabilities |
Ubuntu USN |
USN-8094-3 | Linux kernel (Real-time) vulnerabilities |
Ubuntu USN |
USN-8094-4 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-8125-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-8126-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-8094-5 | Linux kernel (Raspberry Pi) vulnerabilities |
Ubuntu USN |
USN-8095-5 | Linux kernel (Raspberry Pi) vulnerabilities |
Ubuntu USN |
USN-8141-1 | Linux kernel (Raspberry Pi) vulnerabilities |
Ubuntu USN |
USN-8152-1 | Linux kernel (OEM) vulnerabilities |
Ubuntu USN |
USN-8163-1 | Linux kernel (Azure FIPS) vulnerabilities |
Ubuntu USN |
USN-8165-1 | Linux kernel (Azure FIPS) vulnerabilities |
Ubuntu USN |
USN-8163-2 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-8243-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-8261-1 | Linux kernel (Xilinx) vulnerabilities |
Sat, 06 Dec 2025 21:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Sat, 06 Dec 2025 00:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
cvssV3_1
|
Thu, 04 Dec 2025 16:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/ [2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/ [3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/ | |
| Title | vsock: Ignore signal/timeout on connect() if already established | |
| First Time appeared |
Linux
Linux linux Kernel |
|
| CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Linux
Linux linux Kernel |
|
| References |
|
|
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2026-05-11T21:45:39.557Z
Reserved: 2025-04-16T07:20:57.181Z
Link: CVE-2025-40248
No data.
Status : Deferred
Published: 2025-12-04T16:16:18.240
Modified: 2026-04-15T00:35:42.020
Link: CVE-2025-40248
OpenCVE Enrichment
No data.
No weakness.
Debian DLA
Ubuntu USN