# CVE-2025-71079: net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write

CVE-2025-71079 is fixed in 18 products on 1 platform, first by DEBIAN-CVE-2025-71079, released January 13, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2025-71079
- Priority: Routine
- CVSS: 5.5 (Moderate)
- EPSS: 0.0011
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Jan 13, 2026
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-71079

## Description

In the Linux kernel, the following vulnerability has been resolved:  net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write  A deadlock can occur between nfc_unregister_device() and rfkill_fop_write() due to lock ordering inversion between device_lock and rfkill_global_mutex.  The problematic lock order is:  Thread A (rfkill_fop_write):   rfkill_fop_write()     mutex_lock(&rfkill_global_mutex)       rfkill_set_block()         nfc_rfkill_set_block()           nfc_dev_down()             device_lock(&dev->dev)    <- waits for device_lock  Thread B (nfc_unregister_device):   nfc_unregister_device()     device_lock(&dev->dev)       rfkill_unregister()         mutex_lock(&rfkill_global_mutex)  <- waits for rfkill_global_mutex  This creates a classic ABBA deadlock scenario.  Fix this by moving rfkill_unregister() and rfkill_destroy() outside the device_lock critical section. Store the rfkill pointer in a local variable before releasing the lock, then call rfkill_unregister() after releasing device_lock.  This change is safe because rfkill_fop_write() holds rfkill_global_mutex while calling the rfkill callbacks, and rfkill_unregister() also acquires rfkill_global_mutex before cleanup. Therefore, rfkill_unregister() will wait for any ongoing callback to complete before proceeding, and device_del() is only called after rfkill_unregister() returns, preventing any use-after-free.  The similar lock ordering in nfc_register_device() (device_lock -> rfkill_global_mutex via rfkill_register) is safe because during registration the device is not yet in rfkill_list, so no concurrent rfkill operations can occur on this device.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | dtb-aarch64 opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-64kb opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-64kb sles 15.7 | 6.4.0-150700.53.31.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-64kb sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-azure opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-azure sles 15.7 | 6.4.0-150700.20.27.1 | [SUSE-SU-2026:0472-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0472-1.md) | Feb 12, 2026 |
| Linux | kernel-azure sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-default opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-default sles 15.7 | 6.4.0-150700.53.31.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-default sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-default-base opensuse-leap 16.0 | 6.12.0-160000.26.1.160000.2.7 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-default-base sles 15.7 | 6.4.0-150700.53.31.1.150700.17.21.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-default-base sles 16.0 | 6.12.0-160000.26.1.160000.2.7 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-docs opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-docs sles 15.7 | 6.4.0-150700.53.31.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-docs sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-kvmsmall opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-kvmsmall sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-livepatch-SLE15-SP7-RT_Update_9 sles 15.7 | 1-150700.1.3.2 | [SUSE-SU-2026:0587-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0587-1.md) | Feb 20, 2026 |
| Linux | kernel-livepatch-SLE15-SP7_Update_9 sles 15.7 | 1-150700.15.3.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-obs-build opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-obs-build sles 15.7 | 6.4.0-150700.53.31.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-obs-qa opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-obs-qa sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-rt opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-source opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-source sles 15.7 | 6.4.0-150700.53.31.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-source sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-source-azure sles 15.7 | 6.4.0-150700.20.27.1 | [SUSE-SU-2026:0472-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0472-1.md) | Feb 12, 2026 |
| Linux | kernel-syms opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-syms sles 15.7 | 6.4.0-150700.53.31.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-syms sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | kernel-syms-azure sles 15.7 | 6.4.0-150700.20.27.1 | [SUSE-SU-2026:0472-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0472-1.md) | Feb 12, 2026 |
| Linux | kernel-zfcpdump opensuse-leap 16.0 | 6.12.0-160000.26.1 | [OPENSUSE-SU-2026:20287-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-20287-1.md) | Feb 27, 2026 |
| Linux | kernel-zfcpdump sles 15.7 | 6.4.0-150700.53.31.1 | [SUSE-SU-2026:0447-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-0447-1.md) | Feb 11, 2026 |
| Linux | kernel-zfcpdump sles 16.0 | 6.12.0-160000.26.1 | [SUSE-SU-2026:20599-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-20599-1.md) | Feb 27, 2026 |
| Linux | linux Debian 12.15 (bookworm) | 6.1.162-1 | [DEBIAN-CVE-2025-71079](https://patchblox.com/security/data/fix/linux/debian-cve-2025-71079.md) | Jan 13, 2026 |
| Linux | linux Debian 13.5 (trixie) | 6.12.69-1 | [DEBIAN-CVE-2025-71079](https://patchblox.com/security/data/fix/linux/debian-cve-2025-71079.md) | Jan 13, 2026 |
| Linux | linux Debian 14 | 6.18.5-1 | [DEBIAN-CVE-2025-71079](https://patchblox.com/security/data/fix/linux/debian-cve-2025-71079.md) | Jan 13, 2026 |

---

Data as of 2026-11-07T18:46:35Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
