{"id":21460,"date":"2026-09-12T04:31:13","date_gmt":"2026-09-11T20:31:13","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89538"},"modified":"2026-09-12T04:31:13","modified_gmt":"2026-09-11T20:31:13","slug":"cve-2026-89538","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89538","title":{"rendered":"CVE-2026-89538 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: Reject krb5 v"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field<\/p>\n<p>gss_krb5_unwrap_v2() sets buf-&gt;len to a logical<br \/>\nlength, which can be much smaller than head[0].iov_len<br \/>\n(the allocated receive-page capacity).  It then calls<br \/>\nxdr_buf_trim() with a trim length derived from the 16-bit<br \/>\n&#8220;extra count&#8221; (ec) field in the Kerberos v2 token header.<\/p>\n<p>The ec field is authenticated by the post-decrypt memcmp()<br \/>\nagainst the encrypted header copy, so a randomly-mutated<br \/>\nvalue is rejected.  However, any peer holding a valid GSS<br \/>\ncontext can legitimately encrypt a token whose ec exceeds<br \/>\nthe plaintext length.  Per RFC 4121, such a token is<br \/>\nstructurally malformed.<\/p>\n<p>Although xdr_buf_trim() now clamps the buf-&gt;len subtraction<br \/>\nto avoid unsigned underflow, the buffer is still left in a<br \/>\nsemantically invalid state (zero length, inconsistent iov<br \/>\nlengths) when ec is oversized.<\/p>\n<p>Reject these tokens before calling xdr_buf_trim(), giving<br \/>\ncallers a well-defined GSS_S_DEFECTIVE_TOKEN error and<br \/>\nkeeping the xdr_buf internally consistent.  The wrapped blob<br \/>\nbegins at a nonzero offset &#8212; both callers pass len as<br \/>\noffset + opaque_len &#8212; so buf-&gt;len still counts the offset<br \/>\nbytes that precede the blob.  Compare the trim length<br \/>\nagainst the remaining wrapped segment, buf-&gt;len &#8211; offset,<br \/>\nrather than the whole buffer; comparing against buf-&gt;len<br \/>\nalone leaves an offset-wide window in which an oversized ec<br \/>\npasses the test and xdr_buf_trim() cuts into the bytes ahead<br \/>\nof the blob.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>SUNRPC: Reject krb5 v2 wrap tokens with oversized ec field<\/p>\n<p>gss_krb5_unwrap_v2() sets buf-&gt;len to a logical<br \/>\nlength, which can be mu<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21460","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21460","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=21460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}