<?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>Tue, 29 Sep 2026 10:30:02 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-39835 — xfs: do not propagate ENODATA disk errors into xattr code</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-39835</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC CN 4100&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;xfs: do not propagate ENODATA disk errors into xattr code&lt;/p&gt;
&lt;p&gt;ENODATA (aka ENOATTR) has a very specific meaning in the xfs xattr code;
namely, that the requested attribute name could not be found.&lt;/p&gt;
&lt;p&gt;However, a medium error from disk may also return ENODATA. At best,
this medium error may escape to userspace as &amp;#34;attribute not found&amp;#34;
when in fact it&amp;#39;s an IO (disk) error.&lt;/p&gt;
&lt;p&gt;At worst, we may oops in xfs_attr_leaf_get() when we do:&lt;/p&gt;
&lt;p&gt;error = xfs_attr_leaf_hasname(args, &amp;amp;bp);
	if (error == -ENOATTR)  {
		xfs_trans_brelse(args-&amp;gt;trans, bp);
		return error;
	}&lt;/p&gt;
&lt;p&gt;because an ENODATA/ENOATTR error from disk leaves us with a null bp,
and the xfs_trans_brelse will then null-deref it.&lt;/p&gt;
&lt;p&gt;As discussed on the list, we really need to modify the lower level
IO functions to trap all disk errors and ensure that we don&amp;#39;t let
unique errors like this leak up into higher xfs functions - many
like this should be remapped to EIO.&lt;/p&gt;
&lt;p&gt;However, this patch directly addresses a reported bug in the xattr
code, and should be safe to backport to stable kernels. A larger-scope
patch to handle more unique errors at lower levels can follow later.&lt;/p&gt;
&lt;p&gt;(Note, prior to 07120f1abdff we did not oops, but we did return the
wrong error code to userspace.)&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux, Siemens SIMATIC CN 4100&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;xfs: do not propagate ENODATA disk errors into xattr code&lt;/p&gt;
&lt;p&gt;ENODATA (aka ENOATTR) has a very specific meaning in the xfs xattr code;
namely, that the requested attribute name could not be found.&lt;/p&gt;
&lt;p&gt;However, a medium error from disk may also return ENODATA. At best,
this medium error may escape to userspace as &amp;#34;attribute not found&amp;#34;
when in fact it&amp;#39;s an IO (disk) error.&lt;/p&gt;
&lt;p&gt;At worst, we may oops in xfs_attr_leaf_get() when we do:&lt;/p&gt;
&lt;p&gt;error = xfs_attr_leaf_hasname(args, &amp;amp;bp);
	if (error == -ENOATTR)  {
		xfs_trans_brelse(args-&amp;gt;trans, bp);
		return error;
	}&lt;/p&gt;
&lt;p&gt;because an ENODATA/ENOATTR error from disk leaves us with a null bp,
and the xfs_trans_brelse will then null-deref it.&lt;/p&gt;
&lt;p&gt;As discussed on the list, we really need to modify the lower level
IO functions to trap all disk errors and ensure that we don&amp;#39;t let
unique errors like this leak up into higher xfs functions - many
like this should be remapped to EIO.&lt;/p&gt;
&lt;p&gt;However, this patch directly addresses a reported bug in the xattr
code, and should be safe to backport to stable kernels. A larger-scope
patch to handle more unique errors at lower levels can follow later.&lt;/p&gt;
&lt;p&gt;(Note, prior to 07120f1abdff we did not oops, but we did return the
wrong error code to userspace.)&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-39835</guid>
    </item>
  </channel>
</rss>
