<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-04T04:36:04.349577+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2025-71079</id>
    <title>CVE-2025-71079 — net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write</title>
    <updated>2026-10-04T04:36:04.351426+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux, Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP, Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP, Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write</p>
<p>A deadlock can occur between nfc_unregister_device() and rfkill_fop_write()
due to lock ordering inversion between device_lock and rfkill_global_mutex.</p>
<p>The problematic lock order is:</p>
<p>Thread A (rfkill_fop_write):
  rfkill_fop_write()
    mutex_lock(&amp;rfkill_global_mutex)
      rfkill_set_block()
        nfc_rfkill_set_block()
          nfc_dev_down()
            device_lock(&amp;dev-&gt;dev)    &lt;- waits for device_lock</p>
<p>Thread B (nfc_unregister_device):
  nfc_unregister_device()
    device_lock(&amp;dev-&gt;dev)
      rfkill_unregister()
        mutex_lock(&amp;rfkill_global_mutex)  &lt;- waits for rfkill_global_mutex</p>
<p>This creates a classic ABBA deadlock scenario.</p>
<p>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.</p>
<p>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.</p>
<p>The similar lock ordering in nfc_register_device() (device_lock -&gt;
rfkill_global_mutex v…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2025-71079"/>
  </entry>
</feed>
