{"id":21596,"date":"2026-09-12T04:31:24","date_gmt":"2026-09-11T20:31:24","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89674"},"modified":"2026-09-12T04:31:24","modified_gmt":"2026-09-11T20:31:24","slug":"cve-2026-89674","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89674","title":{"rendered":"CVE-2026-89674 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnfsd: fix XDR length"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget<\/p>\n<p>The XDR buffer size calculation in nfsd4_ff_encode_layoutget() has<br \/>\nmultiple errors that can result in either an out-of-bounds write or<br \/>\nleaking uninitialized kernel memory to the client:<\/p>\n<p> &#8211; fh_len doesn&#8217;t account for XDR padding on the file handle data<br \/>\n &#8211; uid and gid lengths use &#8220;8 + len&#8221; but xdr_encode_opaque() actually<br \/>\n   writes &#8220;4 + xdr_align_size(len)&#8221; bytes<br \/>\n &#8211; ds_len omits the flags and stats_collect_hint fields (8 bytes),<br \/>\n   while len&#8217;s header constant overestimates by 8 bytes &#8212; these<br \/>\n   partially cancel but leave a net mismatch<\/p>\n<p>The worst case occurs with short strings (e.g. uid=0, gid=0 with an<br \/>\nodd-sized file handle), where the function writes up to 5 bytes past<br \/>\nthe reserved XDR buffer. Conversely, when string lengths happen to be<br \/>\n4-byte aligned, the reservation is too large and stale buffer content<br \/>\nis sent to the client.<\/p>\n<p>Fix this by breaking out every encoded field explicitly in the ds_len<br \/>\ncalculation, using xdr_align_size() for all variable-length opaque<br \/>\nfields, and correcting the header constants.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget<\/p>\n<p>The XDR buffer size calculation in nfsd4_ff_encode_layoutget() has<br \/>\nm<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21596","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}