net/handshake: hand off the pinned file reference to accept_doit
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-416 and the CVSS impact.
Summary
In the Linux kernel, the following vulnerability has been resolved: net/handshake: hand off the pinned file reference to accept_doit handshake_req_next() removes the request from the per-net pending list and drops hn_lock before handshake_nl_accept_doit() reads req->hr_sk->sk_socket and dereferences sock->file (once in FD_PREPARE() and again in get_file()). In that window a consumer running tls_handshake_cancel() followed by sockfd_put() (svc_sock_free) or __fput_sync() (xs_reset_transport) releases sock->file. sock_release() then runs sock_orphan(), zeroing sk_socket, and frees the struct socket. The accept-side code either reads NULL through sk_socket or chases freed memory. The submit-side sock_hold() does not prevent this. sk_refcnt protects struct sock, but struct socket and sock->file are independently refcounted via the file descriptor the consumer owns. Pinning sk leaves sock and sock->file unprotected. Retarget the accept-side dereferences at req->hr_file, which was pinned at submit time, instead of req->hr_sk->sk_socket->file. Pinning on its own is not sufficient: a consumer that cancels between handshake_req_next() returning and accept_doit reaching FD_PREPARE() takes the !remove_pending() branch in handshake_req_cancel() and drops hr_file before the accept side takes its own reference. Hand off an additional file reference inside handshake_req_next(), under hn_lock, so the accept side operates on a reference that no concurrent handshake_req_cancel() can revoke. FD_PREPARE() consumes that handed-off reference, either by transferring it to the new fd in fd_publish() or by dropping it in the cleanup destructor on error; the explicit get_file() that previously balanced FD_PREPARE() is therefore redundant and goes away. Update handshake_req_cancel_test2 and _test3 to simulate the FD_PREPARE() consumption with an fput() so the kunit file-count assertions stay balanced.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA Linux (Linux) Fixed in 6.6.160, 6.12.114, 6.18.44, 7.0.12, 7.1
Red Hat 2 advisories
- RHSA-2026:91565 Released 2026-10-28 · Red Hat rating Importantkernel security, bug fix, and enhancement update
- 10Base-SMTV kernel-modules-internal-6.12.0-211.69.1.el10_2
- Red Hat Enterprise Linux AppStream (v. 10) kernel-64k-debug-devel-6.12.0-211.69.1.el10_2, kernel-64k-debug-devel-matched-6.12.0-211.69.1.el10_2, kernel-64k-devel-6.12.0-211.69.1.el10_2 +12
- Red Hat Enterprise Linux BaseOS (v. 10) kernel-6.12.0-211.69.1.el10_2, kernel-64k-6.12.0-211.69.1.el10_2, kernel-64k-core-6.12.0-211.69.1.el10_2 +29
- Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) kernel-tools-libs-devel-6.12.0-211.69.1.el10_2, libperf-6.12.0-211.69.1.el10_2
- Red Hat Enterprise Linux Hidden (v. 10) kernel-modules-internal-6.12.0-211.69.1.el10_2
- Red Hat Enterprise Linux Real Time (v. 10) kernel-rt-6.12.0-211.69.1.el10_2, kernel-rt-64k-6.12.0-211.69.1.el10_2, kernel-rt-64k-core-6.12.0-211.69.1.el10_2 +21
- Red Hat Enterprise Linux Real Time for NFV (v. 10) kernel-rt-6.12.0-211.69.1.el10_2, kernel-rt-core-6.12.0-211.69.1.el10_2, kernel-rt-debug-6.12.0-211.69.1.el10_2 +9
- RHSA-2026:90365 Released 2026-10-26 · Red Hat rating Importantkernel security, bug fix, and enhancement update
- Red Hat Enterprise Linux AppStream (v. 9) kernel-64k-debug-devel-5.14.0-687.61.1.el9_8, kernel-64k-debug-devel-matched-5.14.0-687.61.1.el9_8, kernel-64k-devel-5.14.0-687.61.1.el9_8 +12
- Red Hat Enterprise Linux BaseOS (v. 9) kernel-5.14.0-687.61.1.el9_8, kernel-64k-5.14.0-687.61.1.el9_8, kernel-64k-core-5.14.0-687.61.1.el9_8 +28
- Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) kernel-tools-libs-devel-5.14.0-687.61.1.el9_8, libperf-5.14.0-687.61.1.el9_8
- Red Hat Enterprise Linux Real Time (v. 9) kernel-rt-5.14.0-687.61.1.el9_8, kernel-rt-64k-5.14.0-687.61.1.el9_8, kernel-rt-64k-core-5.14.0-687.61.1.el9_8 +21
- Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt-5.14.0-687.61.1.el9_8, kernel-rt-core-5.14.0-687.61.1.el9_8, kernel-rt-debug-5.14.0-687.61.1.el9_8 +9
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| 10Base-SMTV | Fixed | RHSA-2026:91565 |
| Red Hat Enterprise Linux AppStream (v. 10) | Fixed | RHSA-2026:91565 |
| Red Hat Enterprise Linux AppStream (v. 9) | Fixed | RHSA-2026:90365 |
| Red Hat Enterprise Linux BaseOS (v. 10) | Fixed | RHSA-2026:91565 |
| Red Hat Enterprise Linux BaseOS (v. 9) | Fixed | RHSA-2026:90365 |
| Red Hat Enterprise Linux CodeReady Linux Builder (v. 10) | Fixed | RHSA-2026:91565 |
| Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) | Fixed | RHSA-2026:90365 |
| Red Hat Enterprise Linux Hidden (v. 10) | Fixed | RHSA-2026:91565 |
| Red Hat Enterprise Linux Real Time (v. 10) | Fixed | RHSA-2026:91565 |
| Red Hat Enterprise Linux Real Time (v. 9) | Fixed | RHSA-2026:90365 |
| Red Hat Enterprise Linux Real Time for NFV (v. 10) | Fixed | RHSA-2026:91565 |
| Red Hat Enterprise Linux Real Time for NFV (v. 9) | Fixed | RHSA-2026:90365 |
Not affected: 4 products
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
Timeline
- 2026-10-02 Threatist record created from CVE-2026-63979
- 2026-10-03 Alias added: GHSA-52c3-j5qj-8hpp
- 2026-10-16 CISA SSVC decision points changed
- 2026-10-19 Weakness changed · CISA ADP
- 2026-10-21 Fix available: Linux/Linux@2f28dbb30b88eafab8d49aaec94710b4e12dea8e, Linux/[email protected], Linux/[email protected] +1 · CNA
- 2026-10-21 2 new references · CNA
- 2026-10-25 EPSS moved to the 50th–90th percentile
- 2026-10-27 Fix available: Red Hat Enterprise Linux AppStream (v. 9), Red Hat Enterprise Linux BaseOS (v. 9), Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) +2 · Red Hat
- 2026-10-29 Fix available: RHSA-2026:90365 · Red Hat
- 2026-10-29 Fix available: RHSA-2026:91565 · Red Hat
- 2026-10-29 Fix available: 10Base-SMTV, Red Hat Enterprise Linux AppStream (v. 10), Red Hat Enterprise Linux BaseOS (v. 10) +4 · Red Hat
- 2026-10-31 CVSS score changed · Red Hat
References
Other 5
- https://git.kernel.org/stable/c/b869e3e4ce1996df23b3efdbbe9a64c4ab81d745
- https://git.kernel.org/stable/c/2f28dbb30b88eafab8d49aaec94710b4e12dea8e
- https://git.kernel.org/stable/c/68eba6519cbd6359fb554a9720f3a3b6b2eba23f
- https://git.kernel.org/stable/c/c06876d4fac38f35820946ee3b1be7d7da799cd4
- https://git.kernel.org/stable/c/f4251190e58b209999c1ba9e6d2976136a1be055
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-63979 · CVE Program
- CVE-2026-63979 · NVD
- FIRST EPSS
- GHSA-52c3-j5qj-8hpp · GitHub Advisory Database · CC BY 4.0
- CVE-2026-63979 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences