CVE-2026-89541

LOWCVSS 9.8 · CRITICAL

Signal is active with 1 mentions in latest observed window

Immediate actions

  • Track advisory updates for patch or workaround availability

Recommended action window: Monitor and triage in normal cycle

NVD description

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: harden gss_unwrap_resp_priv length checks gss_unwrap_resp_priv() validates the RPCSEC_GSS opaque length with offset = (u8 *)(p) - (u8 *)head->iov_base; if (offset + opaque_len > rcv_buf->len) goto unwrap_failed; maj_stat = gss_unwrap(ctx->gc_gss_ctx, offset, offset + opaque_len, rcv_buf); Both operands are u32 and the sum is computed in u32. A reply with opaque_len near 0xffffffff makes offset + opaque_len wrap to a small value that is below rcv_buf->len, so the bound check passes and gss_unwrap() is called with end < begin. The check also lacks a lower bound, so any opaque_len in [0, GSS_KRB5_TOK_HDR_LEN) is accepted and forwarded to gss_krb5_unwrap_v2(), whose pre-decrypt header reads at ptr+4 and ptr+6 then run past the token. A krb5p NFS server returning a crafted RPCSEC_GSS reply can drive the client into out-of-bounds reads in gss_krb5_unwrap_v2() and the rotate_left() loop that follows. Fix by replacing the single combined check with three guards that are safe in u32 arithmetic and that enforce the RFC 4121 minimum outer token length: if (offset > rcv_buf->len) goto unwrap_failed; if (opaque_len > rcv_buf->len - offset) goto unwrap_failed; if (opaque_len < GSS_KRB5_TOK_HDR_LEN) goto unwrap_failed; The first guard makes the subtraction in the second guard unconditionally safe; offset is derived from a successful xdr_inline_decode() in the head kvec, so in practice it already satisfies the bound. The floor mirrors the server-side check added in commit 5b757c2e57a5 ("SUNRPC: svcauth_gss: enforce krb5 token minimum length").

0.0/ 10 priority

Sources & remediation

Priority

LOW

Exploitation

NONE

PoC

NONE

Patch

NONE

Momentum

NONE

Threat summary

  • 1 mentions across 1 observed day

What's happening

  • 1 total mentions across 1 day

Deep dive

Activity timeline1 mentions / 1d
00111Mentions · 2026-10-02: 110-02
Full discourse1 post
  • Keith Adler@keithadler

    Reviewed with Claude: About 1 in 5 credit AI help in the commit trailers. What AI was good at: spotting a missing bounds check, a missing lock or a refcount slip in old, rarely audited code. The standouts: - A 2005 IPv6 AH bug (CVE-2026-80844). An unchecked segments_left=255 makes the kernel memmove 4,064 bytes from before its buffer. A code comment claimed it was already verified. Raw packets bypass that check. Sat there ~20 years. - A 2006 RPC GSS client bug (CVE-2026-89541). offset + opaque_len > len can wrap around, so a hostile NFS server gets past the bounds check. - Five BPF verifier fixes credited to Nicholas Carlini. The best one lets a plain allocation into a per-CPU pointer field, which the commit says gives arbitrary kernel read/write. (He has an Anthropic address, so weigh that.) - An NFS-over-RDMA heap overflow (CVE-2026-89530). Replies bigger than a fixed buffer were copied in with no size check. - nfsd refcount bugs a remote NFSv4 client can race, plus SMB client heap overflow and out-of-bounds read bugs that need a malicious server. The caveat: five qdisc fixes look impressive but are one MTU-overflow pattern. One reporter found it, a human maintainer fixed it as a single patch series, and the fixes are only clamps. Not five findings. Reality check: nothing here is unauthenticated remote code execution on a default install. Many of the 1,313 are cosmetic, like a debugfs log message. Recommendation: Good tools, modest findings. Patch anyway.

    00000581
    113 followersView on X

Explore more