CVE-2026-31509

nfc: nci: fix circular locking dependency in nci_close_device

published April 22, 2026

CVSS
—
EPSS
0%
Percentile
2.1
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

nfc: nci: fix circular locking dependency in nci_close_device

nci_close_device() flushes rx_wq and tx_wq while holding req_lock.

This causes a circular locking dependency because nci_rx_work()

running on rx_wq can end up taking req_lock too:

nci_rx_work -> nci_rx_data_packet -> nci_data_exchange_complete

-> __sk_destruct -> rawsock_destruct -> nfc_deactivate_target

-> nci_deactivate_target -> nci_request -> mutex_lock(&ndev->req_lock)

Move the flush of rx_wq after req_lock has been released.

This should safe (I think) because NCI_UP has already been cleared

and the transport is closed, so the work will see it and return

-ENETDOWN.

NIPA has been hitting this running the nci selftest with a debug

kernel on roughly 4% of the runs.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00125 · 2.1th percentile
Published
2026-04-22T13:54Z
EPSS history
Timeline
  • 22 APR 13:54Z
    nfc: nci: fix circular locking dependency in nci_close_device
    cvelistv5