CVE-2026-89545
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Summary
In the Linux kernel, the following vulnerability has been resolved:
sunrpc: defer rq_argp and rq_resp free until after RCU grace period
svc_rqst_free() frees rqstp->rq_argp and rqstp->rq_resp synchronously via kfree(), but defers the rqstp struct free via kfree_rcu(). After svc_exit_thread() calls list_del_rcu() and svc_rqst_free(), there is a window where RCU readers that started before list_del_rcu() can still traverse the thread list and find the rqstp. These readers (e.g. nfsd_nl_rpc_status_get_dumpit()) dereference rqstp->rq_argp, which has already been freed — a use-after-free.
Fix this by moving the kfree of rq_argp and rq_resp into an explicit call_rcu() callback alongside the struct free. Resources not accessed by RCU readers (bvec, buffer pages, scratch folio, auth_data) remain synchronously freed.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 812443865c5fc255363d4a684a62c086af1addca < 08bc49e0541260bf294962cf889a32a2d2713ad6 | affected |
| Linux | Linux | 812443865c5fc255363d4a684a62c086af1addca < e0c5693d3f9a5d4911735ab0e0eba4eecb1f1090 | affected |
| Linux | Linux | 812443865c5fc255363d4a684a62c086af1addca < c479bde671cbe2f9e152834a8b0eb7c3c295bbaf | affected |
| Linux | Linux | 3.19 | affected |
| Linux | Linux | 0 < 3.19 | unaffected |
| Linux | Linux | 6.18.50 <= 6.18.* | unaffected |
| Linux | Linux | 7.2.4 <= 7.2.* | unaffected |
| Linux | Linux | 7.3-rc1 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/08bc49e0541260bf294962cf889a32a2d2713ad6
- https://git.kernel.org/stable/c/e0c5693d3f9a5d4911735ab0e0eba4eecb1f1090
- https://git.kernel.org/stable/c/c479bde671cbe2f9e152834a8b0eb7c3c295bbaf
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.