<?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 14:32:21 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-89550 — SUNRPC: svcauth_gss: enforce krb5 token minimum length</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-89550</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;SUNRPC: svcauth_gss: enforce krb5 token minimum length&lt;/p&gt;
&lt;p&gt;svcauth_gss_unwrap_priv() validates only an upper bound on the
wire-supplied opaque length before handing the buffer to
gss_unwrap():&lt;/p&gt;
&lt;p&gt;if (len &amp;gt; xdr_stream_remaining(xdr))
            goto unwrap_failed;
    offset = xdr_stream_pos(xdr);
    ...
    maj_stat = gss_unwrap(ctx, offset, offset + len, buf);&lt;/p&gt;
&lt;p&gt;The wire value `len` flows unchanged as the upper bound into the
krb5 unwrap path, so a len in [0, 16] passes this check and is
handed to gss_unwrap(). For a krb5 v2 context that lands in
gss_krb5_unwrap_v2(), which reads the 16-byte RFC 4121 token
header fields at ptr+4 and ptr+6 and then calls rotate_left()
before any integrity check. With a sub-header length the header
reads run past the token, and _rotate_left()&amp;#39;s `shift %= buf-&amp;gt;len`
path can divide by zero when buf-&amp;gt;len has been driven to zero by
the truncated token. A header-only token (len == 16) is equally
invalid: with a non-zero RRC field and the opaque blob ending at
the XDR buffer boundary, rotate_left() builds a zero-length
subbuffer, reaching the same division.&lt;/p&gt;
&lt;p&gt;Reject the token at the server entry point before it reaches the
krb5 unwrap core. A valid sealed RFC 4121 token must contain
the 16-byte header plus at least some encrypted payload.&lt;/p&gt;
&lt;p&gt;Fix by adding a minimum-length check immediately after the
existing upper-bound check:&lt;/p&gt;
&lt;p&gt;if (len &amp;lt;= GSS_KRB5_TOK_HDR_LEN)
            goto un…&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;SUNRPC: svcauth_gss: enforce krb5 token minimum length&lt;/p&gt;
&lt;p&gt;svcauth_gss_unwrap_priv() validates only an upper bound on the
wire-supplied opaque length before handing the buffer to
gss_unwrap():&lt;/p&gt;
&lt;p&gt;if (len &amp;gt; xdr_stream_remaining(xdr))
            goto unwrap_failed;
    offset = xdr_stream_pos(xdr);
    ...
    maj_stat = gss_unwrap(ctx, offset, offset + len, buf);&lt;/p&gt;
&lt;p&gt;The wire value `len` flows unchanged as the upper bound into the
krb5 unwrap path, so a len in [0, 16] passes this check and is
handed to gss_unwrap(). For a krb5 v2 context that lands in
gss_krb5_unwrap_v2(), which reads the 16-byte RFC 4121 token
header fields at ptr+4 and ptr+6 and then calls rotate_left()
before any integrity check. With a sub-header length the header
reads run past the token, and _rotate_left()&amp;#39;s `shift %= buf-&amp;gt;len`
path can divide by zero when buf-&amp;gt;len has been driven to zero by
the truncated token. A header-only token (len == 16) is equally
invalid: with a non-zero RRC field and the opaque blob ending at
the XDR buffer boundary, rotate_left() builds a zero-length
subbuffer, reaching the same division.&lt;/p&gt;
&lt;p&gt;Reject the token at the server entry point before it reaches the
krb5 unwrap core. A valid sealed RFC 4121 token must contain
the 16-byte header plus at least some encrypted payload.&lt;/p&gt;
&lt;p&gt;Fix by adding a minimum-length check immediately after the
existing upper-bound check:&lt;/p&gt;
&lt;p&gt;if (len &amp;lt;= GSS_KRB5_TOK_HDR_LEN)
            goto un…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-89550</guid>
    </item>
  </channel>
</rss>
