<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 00:44:35 +0000</lastBuildDate>
    <item>
      <title>CVE-2023-53593 — cifs: Release folio lock on fscache read hit.</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2023-53593</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;cifs: Release folio lock on fscache read hit.&lt;/p&gt;
&lt;p&gt;Under the current code, when cifs_readpage_worker is called, the call
contract is that the callee should unlock the page. This is documented
in the read_folio section of Documentation/filesystems/vfs.rst as:&lt;/p&gt;
&lt;p&gt;&amp;gt; The filesystem should unlock the folio once the read has completed,
&amp;gt; whether it was successful or not.&lt;/p&gt;
&lt;p&gt;Without this change, when fscache is in use and cache hit occurs during
a read, the page lock is leaked, producing the following stack on
subsequent reads (via mmap) to the page:&lt;/p&gt;
&lt;p&gt;$ cat /proc/3890/task/12864/stack
[&amp;lt;0&amp;gt;] folio_wait_bit_common+0x124/0x350
[&amp;lt;0&amp;gt;] filemap_read_folio+0xad/0xf0
[&amp;lt;0&amp;gt;] filemap_fault+0x8b1/0xab0
[&amp;lt;0&amp;gt;] __do_fault+0x39/0x150
[&amp;lt;0&amp;gt;] do_fault+0x25c/0x3e0
[&amp;lt;0&amp;gt;] __handle_mm_fault+0x6ca/0xc70
[&amp;lt;0&amp;gt;] handle_mm_fault+0xe9/0x350
[&amp;lt;0&amp;gt;] do_user_addr_fault+0x225/0x6c0
[&amp;lt;0&amp;gt;] exc_page_fault+0x84/0x1b0
[&amp;lt;0&amp;gt;] asm_exc_page_fault+0x27/0x30&lt;/p&gt;
&lt;p&gt;This requires a reboot to resolve; it is a deadlock.&lt;/p&gt;
&lt;p&gt;Note however that the call to cifs_readpage_from_fscache does mark the
page clean, but does not free the folio lock. This happens in
__cifs_readpage_from_fscache on success. Releasing the lock at that
point however is not appropriate as cifs_readahead also calls
cifs_readpage_from_fscache and *does* unconditionally release the lock
after its return. This change therefore effectively makes
cifs_readpage_worker work like cifs_readahead.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;cifs: Release folio lock on fscache read hit.&lt;/p&gt;
&lt;p&gt;Under the current code, when cifs_readpage_worker is called, the call
contract is that the callee should unlock the page. This is documented
in the read_folio section of Documentation/filesystems/vfs.rst as:&lt;/p&gt;
&lt;p&gt;&amp;gt; The filesystem should unlock the folio once the read has completed,
&amp;gt; whether it was successful or not.&lt;/p&gt;
&lt;p&gt;Without this change, when fscache is in use and cache hit occurs during
a read, the page lock is leaked, producing the following stack on
subsequent reads (via mmap) to the page:&lt;/p&gt;
&lt;p&gt;$ cat /proc/3890/task/12864/stack
[&amp;lt;0&amp;gt;] folio_wait_bit_common+0x124/0x350
[&amp;lt;0&amp;gt;] filemap_read_folio+0xad/0xf0
[&amp;lt;0&amp;gt;] filemap_fault+0x8b1/0xab0
[&amp;lt;0&amp;gt;] __do_fault+0x39/0x150
[&amp;lt;0&amp;gt;] do_fault+0x25c/0x3e0
[&amp;lt;0&amp;gt;] __handle_mm_fault+0x6ca/0xc70
[&amp;lt;0&amp;gt;] handle_mm_fault+0xe9/0x350
[&amp;lt;0&amp;gt;] do_user_addr_fault+0x225/0x6c0
[&amp;lt;0&amp;gt;] exc_page_fault+0x84/0x1b0
[&amp;lt;0&amp;gt;] asm_exc_page_fault+0x27/0x30&lt;/p&gt;
&lt;p&gt;This requires a reboot to resolve; it is a deadlock.&lt;/p&gt;
&lt;p&gt;Note however that the call to cifs_readpage_from_fscache does mark the
page clean, but does not free the folio lock. This happens in
__cifs_readpage_from_fscache on success. Releasing the lock at that
point however is not appropriate as cifs_readahead also calls
cifs_readpage_from_fscache and *does* unconditionally release the lock
after its return. This change therefore effectively makes
cifs_readpage_worker work like cifs_readahead.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2023-53593</guid>
    </item>
  </channel>
</rss>
