CVE-2026-63980: Linux kernel · net/handshake: Use spin_lock_bh for hn_lock
Affects Linux kernelSource CVE Database V5
Not known to be exploited · CVSS 7.5 High · fixed in cc993e0927ec8bd98ea33377ada03295fcda0f24 : patch Linux kernel soon.
Data as of 26 Oct 2026, 13:47 UTC
- EPSS
- 0.3% chance of exploitation in 30 days – higher than 27% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- CISA SSVC
- Exploitation
- No evidence of active exploitation and no public proof of concept
- Automatable
- Attackers can reliably automate steps 1–4 of the kill chain
- Technical impact
- Limited control over the software or limited information exposure
CISA SSVC assessment, 2026-10-16.
- Patch
- Available – fixed in cc993e0927ec8bd98ea33377ada03295fcda0f24, 0866569fc36a56f568acd3900d354e3505932e09, 91898de9501a047ba67c6b864dcd403e00bdfbf5 +1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HExploitation evidence
Disclosed: evidence found.
CVE published 19 Jul 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade Linux kernel to cc993e0927ec8bd98ea33377ada03295fcda0f24, 0866569fc36a56f568acd3900d354e3505932e09, 91898de9501a047ba67c6b864dcd403e00bdfbf5 or 06ab5978866fc2221b910347fd3e510ca8e7b1a4.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in– |
Description
In the Linux kernel, the following vulnerability has been resolved: net/handshake: Use spin_lock_bh for hn_lock nvmet_tcp_state_change(), a socket callback that runs in BH context, can reach handshake_req_cancel() via nvmet_tcp_schedule_release_queue() and tls_handshake_cancel(). handshake_req_cancel() acquires hn->hn_lock with plain spin_lock(). If a process-context thread on the same CPU holds hn->hn_lock when a softirq invokes the cancel path, the lock attempt deadlocks. This is the only caller that invokes tls_handshake_cancel() from BH context; every other consumer calls it from process context. Deferring the cancel to process context in the NVMe target is not straightforward: nvmet_tcp_schedule_release_queue() must call tls_handshake_cancel() atomically with its state transition to DISCONNECTING. If the cancel were deferred, the handshake completion callback could fire in the window before the cancel runs, observe the unexpected state, and return without dropping its kref on the queue. Reworking that interlock is considerably more invasive than hardening the handshake lock. Convert all hn->hn_lock acquisitions from spin_lock/spin_unlock to spin_lock_bh/spin_unlock_bh so the lock is never taken with softirqs enabled.
References
- git.kernel.org/stable/c/06ab5978866fc2221b910347fd3e510ca8e7b1a4 (opens in a new tab)
- git.kernel.org/stable/c/0866569fc36a56f568acd3900d354e3505932e09 (opens in a new tab)
- git.kernel.org/stable/c/91898de9501a047ba67c6b864dcd403e00bdfbf5 (opens in a new tab)
- git.kernel.org/stable/c/cc993e0927ec8bd98ea33377ada03295fcda0f24 (opens in a new tab)