Skip to main content
VulnerabilityPublished Updated

CVE-2026-63980: Linux kernel · net/handshake: Use spin_lock_bh for hn_lock

Affects Linux kernelSource CVE Database V5

0

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

CVSS 3.1 base score
7.5High
How severe the flaw is on the 0–10 CVSS scale.
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:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 19 Jul 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq 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

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ 675b453e024154dd547921c6e6d5b58747ba7e0e, < cc993e0927ec8bd98ea33377ada03295fcda0f24
Fixed in
  • cc993e0927ec8bd98ea33377ada03295fcda0f24
LinuxLinuxAffected
  • ≥ 675b453e024154dd547921c6e6d5b58747ba7e0e, < 0866569fc36a56f568acd3900d354e3505932e09
Fixed in
  • 0866569fc36a56f568acd3900d354e3505932e09
LinuxLinuxAffected
  • ≥ 675b453e024154dd547921c6e6d5b58747ba7e0e, < 91898de9501a047ba67c6b864dcd403e00bdfbf5
Fixed in
  • 91898de9501a047ba67c6b864dcd403e00bdfbf5
LinuxLinuxAffected
  • ≥ 675b453e024154dd547921c6e6d5b58747ba7e0e, < 06ab5978866fc2221b910347fd3e510ca8e7b1a4
Fixed in
  • 06ab5978866fc2221b910347fd3e510ca8e7b1a4
LinuxLinuxAffected
  • =6.7
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

Community reviews

Loading reviews…