cveboard RSS feed

CVE-2025-71079

CVE.org · Published

Historical CVEsJSONAI instructions

Record status
Published
Identifier year (not publication year)
2025
Source publication
Source updated
Imported by cveboard
Source snapshot
cve_2026-10-24_midnight_baseline ·

Plain text

CNA source text (English)

net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write

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.

Scoped product and version facts

Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.

Exploitation unknown; this catalogue does not assess exploitation.

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
unaffected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
73a0d12114b4bc1a9def79a623264754b9df698eaffectedgit2e0831e9fc46a06daa6d4d8d57a2738e343130c3UnavailableNone listed
8a9c61c3ef187d8891225f9b932390670a43a0d3affectedgite02a1c33f10a0ed3aba855ab8ae2b6c4c5be8012UnavailableNone listed
3e3b5dfcd16a3e254aab61bd1e8c417dd4503102affectedgitee41f4f3ccf8cd6ba3732e867abbec7e6d8d12e5UnavailableNone listed
3e3b5dfcd16a3e254aab61bd1e8c417dd4503102affectedgit6b93c8ab6f6cda8818983a4ae3fcf84b023037b4UnavailableNone listed
3e3b5dfcd16a3e254aab61bd1e8c417dd4503102affectedgit8fc4632fb508432895430cd02b38086bdd649083UnavailableNone listed
3e3b5dfcd16a3e254aab61bd1e8c417dd4503102affectedgitf3a8a7c1aa278f2378b2f3a10500c6674dffdfdaUnavailableNone listed
3e3b5dfcd16a3e254aab61bd1e8c417dd4503102affectedgit1ab526d97a57e44d26fadcc0e9adeb9c0c0182f5UnavailableNone listed
5ef16d2d172ee56714cff37cd005b98aba08ef5aaffectedgitUnavailableUnavailableNone listed
ff169909eac9e00bf1aa0af739ba6ddfb1b1d135affectedgitUnavailableUnavailableNone listed
47244ac0b65bd74cc70007d8e1bac68bd2baad19affectedgitUnavailableUnavailableNone listed
c45cea83e13699bdfd47842e04d09dd43af4c371affectedgitUnavailableUnavailableNone listed
307d2e6cebfca9d92f86c8e2c8e3dd4a8be46ba6affectedgitUnavailableUnavailableNone listed
5.10.82affectedsemver5.10.248UnavailableNone listed
5.15.5affectedsemver5.15.198UnavailableNone listed
4.4.293affectedsemver4.5UnavailableNone listed
4.9.291affectedsemver4.10UnavailableNone listed
4.14.256affectedsemver4.15UnavailableNone listed
4.19.218affectedsemver4.20UnavailableNone listed
5.4.162affectedsemver5.5UnavailableNone listed

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
affected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
5.16affectedUnavailableUnavailableUnavailableNone listed
0unaffectedsemver5.16UnavailableNone listed
5.10.248unaffectedsemverUnavailable5.10.*None listed
5.15.198unaffectedsemverUnavailable5.15.*None listed
6.1.160unaffectedsemverUnavailable6.1.*None listed
6.6.120unaffectedsemverUnavailable6.6.*None listed
6.12.64unaffectedsemverUnavailable6.12.*None listed
6.18.4unaffectedsemverUnavailable6.18.*None listed
6.19unaffectedoriginal_commit_for_fixUnavailable*None listed