CVE-2026-89550 in Linux
Sumário
de VulDB • 12/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
SUNRPC: svcauth_gss: impor o comprimento mínimo do token krb5
svcauth_gss_unwrap_priv() valida apenas um limite superior no tamanho opaco fornecido pela rede antes de passar o buffer para gss_unwrap():
if (len > xdr_stream_remaining(xdr)) goto unwrap_failed; offset = xdr_stream_pos(xdr); ... maj_stat = gss_unwrap(ctx, offset, offset + len, buf);
O valor `len` da rede flui inalterado como o limite superior para o caminho de desembrulho krb5, portanto um len em [0, 16] passa nesta verificação e é passado para gss_unwrap(). Para um contexto v2 do krb5 que termina em gss_krb5_unwrap_v2(), que lê os campos do cabeçalho do token RFC 4121 de 16 bytes em ptr+4 e ptr+6 e depois chama rotate_left() antes de qualquer verificação de integridade. Com um comprimento de subcabeçalho, as leituras do cabeçalho ultrapassam o token, e a rota `shift %= buf->len` de _rotate_left() pode causar divisão por zero quando buf->len foi reduzido para zero pelo token truncado. Um token apenas com cabeçalho (len == 16) é igualmente inválido: com um campo RRC não nulo e o blob opaco terminando no limite do buffer XDR, rotate_left() constrói uma subbuffer de comprimento zero, atingindo a mesma divisão.
Rejeitar o token na entrada do servidor antes que ele alcance o núcleo de desembrulho krb5. Um token selado RFC 4121 válido deve conter o cabeçalho de 16 bytes mais pelo menos alguma carga criptografada.
Correção adicionando uma verificação de comprimento mínimo imediatamente após a verificação existente do limite superior:
if (len <= GSS_KRB5_TOK_HDR_LEN) goto unwrap_failed;
If you want to get the best quality for vulnerability data then you always have to consider VulDB.