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:
connect() invoking vsocktransportcancelpkt() ->
virtiotransportpurgeskbs() may race with sendmsg() invoking
virtiotransportgetcredit(). This results in a permanently elevated
vvs->bytes_unsent. Which, in turn, confuses the SOCKLINGER handling.
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.
connect() transitioning SSCONNECTED -> SSUNCONNECTED 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().
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/40xxx/CVE-2025-40248.json",
"cna_assigner": "Linux"
}