<?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://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-06T01:07:41.467324+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" 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://cve.radiocsirt.org/vuln/cve-2026-89678</id>
    <title>CVE-2026-89678 — nfsd: fix partial-write detection in nfsd_direct_write</title>
    <updated>2026-10-06T01:07:41.486836+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>nfsd: fix partial-write detection in nfsd_direct_write</p>
<p>nfsd_direct_write() walks a list of write segments and, after each
vfs_iocb_iter_write(), tries to detect a short write so the loop can
stop before placing the next segment at a wrong file offset:</p>
<p>host_err = vfs_iocb_iter_write(file, kiocb, &amp;segments[i].iter);
    if (host_err &lt; 0)
            return host_err;
    *cnt += host_err;
    if (host_err &lt; segments[i].iter.count)
            break;	/* partial write */</p>
<p>vfs_iocb_iter_write() runs the iter through -&gt;write_iter(), which
advances the iter by the number of bytes written. By the time the
check runs, segments[i].iter.count is the residual, not the original
request length:</p>
<p>before write_iter: iter.count == original_len
    after  write_iter: iter.count == original_len - host_err</p>
<p>The condition then reduces to host_err &lt; original_len - host_err, so
the break fires only when less than half of the segment was written.
Any short write completing between 50% and 99% of the segment slips
through; the loop advances to the next segment with kiocb-&gt;ki_pos
only bumped by the short amount, writing the next segment's payload
at the wrong offset and over-reporting *cnt to the NFS client.</p>
<p>Snapshot the segment's byte count before the write and compare
host_err against that snapshot so any short write breaks the loop.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/cve-2026-89678"/>
  </entry>
</feed>
