<?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://cve.radiocsirt.org</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>Tue, 06 Oct 2026 19:20:00 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-89695 — nfsd: cap decoded POSIX ACL count to bound sort cost</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-89695</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;nfsd: cap decoded POSIX ACL count to bound sort cost&lt;/p&gt;
&lt;p&gt;nfsd4_decode_posixacl() reads a u32 entry count off the wire and passes
it straight to posix_acl_alloc() and sort_pacl_range(). The latter is
an O(n^2) bubble sort, so a client-chosen count drives unbounded CPU in
the server&amp;#39;s compound processing path.&lt;/p&gt;
&lt;p&gt;nfsd4_decode_posixacl()
      xdr_stream_decode_u32(&amp;amp;count)       /* uncapped u32 */
      posix_acl_alloc(count, GFP_KERNEL)
      sort_pacl_range(*acl, 0, count - 1) /* O(n^2) bubble sort */&lt;/p&gt;
&lt;p&gt;The encoder side in the same file already rejects ACLs whose a_count
exceeds NFS_ACL_MAX_ENTRIES, but the decoder introduced in commit
5fc51dfc2eb1 (&amp;#34;NFSD: Add support for XDR decoding POSIX draft ACLs&amp;#34;)
omitted the symmetric check.&lt;/p&gt;
&lt;p&gt;Fix by rejecting a wire count greater than NFS_ACL_MAX_ENTRIES with
nfserr_inval, before any allocation, so the sort is bounded by
NFS_ACL_MAX_ENTRIES^2 comparisons.&lt;/p&gt;
&lt;p&gt;While we&amp;#39;re in here, also fix the nfserr_resource return if
posix_acl_alloc() fails. That&amp;#39;s not a legal error code for v4.1+. Change
it to return nfserr_jukebox as that&amp;#39;s more appropriate for memory
allocation failures.&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;nfsd: cap decoded POSIX ACL count to bound sort cost&lt;/p&gt;
&lt;p&gt;nfsd4_decode_posixacl() reads a u32 entry count off the wire and passes
it straight to posix_acl_alloc() and sort_pacl_range(). The latter is
an O(n^2) bubble sort, so a client-chosen count drives unbounded CPU in
the server&amp;#39;s compound processing path.&lt;/p&gt;
&lt;p&gt;nfsd4_decode_posixacl()
      xdr_stream_decode_u32(&amp;amp;count)       /* uncapped u32 */
      posix_acl_alloc(count, GFP_KERNEL)
      sort_pacl_range(*acl, 0, count - 1) /* O(n^2) bubble sort */&lt;/p&gt;
&lt;p&gt;The encoder side in the same file already rejects ACLs whose a_count
exceeds NFS_ACL_MAX_ENTRIES, but the decoder introduced in commit
5fc51dfc2eb1 (&amp;#34;NFSD: Add support for XDR decoding POSIX draft ACLs&amp;#34;)
omitted the symmetric check.&lt;/p&gt;
&lt;p&gt;Fix by rejecting a wire count greater than NFS_ACL_MAX_ENTRIES with
nfserr_inval, before any allocation, so the sort is bounded by
NFS_ACL_MAX_ENTRIES^2 comparisons.&lt;/p&gt;
&lt;p&gt;While we&amp;#39;re in here, also fix the nfserr_resource return if
posix_acl_alloc() fails. That&amp;#39;s not a legal error code for v4.1+. Change
it to return nfserr_jukebox as that&amp;#39;s more appropriate for memory
allocation failures.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-89695</guid>
    </item>
  </channel>
</rss>
