Get a Demo

Let's Patch It!

Book a short call with one our specialists, we'll walk you through how Endor Patches work, and ask you a few questions about your environment (like your primary programming languages and repository management). We'll also send you an email right after you fill out the form, feel free to reply with any questions you have in advance!

CVE

DEBIAN-CVE-2026-89551

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: xdr_buf_trim: clamp buf->len to avoid underflow xdr_buf_trim() trims `len` bytes from the tail of an xdr_buf by walking th...
Back to all
CVE

DEBIAN-CVE-2026-89551

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: xdr_buf_trim: clamp buf->len to avoid underflow xdr_buf_trim() trims `len` bytes from the tail of an xdr_buf by walking th...

In the Linux kernel, the following vulnerability has been resolved:  SUNRPC: xdrbuftrim: clamp buf->len to avoid underflow  xdrbuftrim() trims len bytes from the tail of an xdrbuf by walking the tail, pages, and head iovecs.  Each per-section step uses mint() so it never removes more bytes than that section holds, but the final accounting at the fixlen label subtracts the total bytes actually consumed from buf->len without any clamp:      fixlen:             buf->len -= (len - trim);  When the caller has set buf->len to a value smaller than the sum of the iovlens, (len - trim) can exceed buf->len and the unsigned subtraction wraps to near UINTMAX.  gsskrb5unwrapv2() reaches xdrbuftrim() in exactly that state:      buf->head[0].iovlen -= GSSKRB5TOKHDRLEN + headskip;     buf->len = len - (GSSKRB5TOKHDRLEN + headskip);     xdrbuftrim(buf, ec + GSSKRB5TOKHDRLEN + tailskip);  buf->len is a small wire-derived value while the iovlens are at page scale, so the per-section loops legitimately consume far more bytes than buf->len records.  The wrapped buf->len then propagates as the authoritative stream bound into every downstream XDR decoder.  Fix by clamping the decrement so buf->len bottoms out at zero:      buf->len -= mint(unsigned int, buf->len, len - trim);  On the normal path where the iov_lens sum to buf->len, (len - trim) is always <= buf->len and the result is identical to before.  No callers change behavior outside the underflow case.

Package Versions Affected

Package Version
patch Availability
No items found.

Automatically patch vulnerabilities without upgrading

Fix Without Upgrading
Detect compatible fix
Apply safe remediation
Fix with a single pull request

CVSS Version

Severity
Base Score
CVSS Version
Score Vector
C
H
U
-
C
H
U
0
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
-

Related Resources

No items found.

References

https://security-tracker.debian.org/tracker/CVE-2026-89551

Severity

9.8

CVSS Score
0
10

Basic Information

Base CVSS
9.8
EPSS Probability
0%
EPSS Percentile
0%
Introduced Version
0
Fix Available
6.12.111-1,7.2.6-1,6.12.111-1~deb12u1

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading