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

CVE-2026-72466

xprtrdma: Fix bcall rep leak and unbounded peek
Back to all
CVE

CVE-2026-72466

xprtrdma: Fix bcall rep leak and unbounded peek

In the Linux kernel, the following vulnerability has been resolved:

xprtrdma: Fix bcall rep leak and unbounded peek

rpcrdmaisbcall() decodes a reply's first words to decide whether

the frame is a backchannel call. Two issues in that decode path

let a short or malformed reply leak the receive buffer and drain

the Receive queue.

First, the speculative peek

    p = xdrinlinedecode(xdr, 0);

    / five p++ reads follow /

asks xdrinlinedecode() for zero bytes, which returns xdr->p

without consulting xdr->end. The five subsequent __be32 reads can

then walk up to 20 bytes past the wire payload into stale regbuf

contents and misclassify the reply as a backchannel call.

Second, after the post-peek

    p = xdrinlinedecode(xdr, 3  sizeof(p));

    if (unlikely(!p))

            return true;

the short-header arm returns true without calling

rpcrdmabcreceive_call(). The contract with the caller is that a

true return transfers ownership of rep to the backchannel path:

    rpcrdmareplyhandler()

      if (rpcrdmaisbcall(r_xprt, rep))

              return;        / bare return, skips out_post /

      ...

    out_post:

      rpcrdmapostrecvs(r_xprt, credits + ...);

Because rpcrdmabcreceive_call() never ran, no one took rep, but

rpcrdmareplyhandler still bare-returns past rpcrdmarepput()

and rpcrdmapostrecvs(). The rep, with its persistently

DMA-mapped receive buffer, is orphaned on rballreps and freed

only at transport teardown. This completion reposts nothing, so

its slot is reclaimed only when a later forward-channel reply

reaches outpost and rpcrdmapost_recvs() allocates a fresh rep to

backfill; absent that traffic the Receive queue drains and the

peer's Sends draw RNR NAKs.

Fix by consulting xdr->end after the zero-length peek so the five

__be32 reads cannot run unless 20 bytes of wire payload remain. A

byte-precise comparison against xdr->end is required because a

non-4-aligned receive rounds the stream's word count up past the

true payload. Also return false from the short-header arm so the

reply falls through the normal out_norqst cleanup chain

(rpcrdmarepput() plus rpcrdmapostrecvs()).

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
9.8
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
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://git.kernel.org/stable/c/07aa506436be7634e381e1e1f6d0efa9efc81ecc, https://git.kernel.org/stable/c/0cee8f9c3b14bd6dee9c4310090a7f45b89b834f, https://git.kernel.org/stable/c/118a16a18c59f7ad8084b2d13988839b669fca10, https://git.kernel.org/stable/c/7afc2f8d2fd9394724df9eaf22ce7a71029a5fba, https://git.kernel.org/stable/c/88b5346284a184a6b7d019912232a571d672d3e3, https://git.kernel.org/stable/c/c7653d5cebc8492c77ec0415b5e9c0fb3e644bc6, https://git.kernel.org/stable/c/d7a2870dde3bb09d51d6b9c877642996ad6b92dd, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72466.json, https://nvd.nist.gov/vuln/detail/CVE-2026-72466, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Severity

9.8

CVSS Score
0
10

Basic Information

Base CVSS
9.8
EPSS Probability
0.00728%
EPSS Percentile
0.51525%
Introduced Version
41c8f70f5a3db7e06179186b6525fd9ee1d7d314,4.14.0,5.16.0,6.2.0,6.7.0,6.13.0,6.19.0,0
Fix Available
c7653d5cebc8492c77ec0415b5e9c0fb3e644bc6,5.15.212,6.1.178,6.6.145,6.12.97,6.18.40,7.1.5,6.1.180-1,6.12.100-1,0:5.15.213-150.251.amzn2,0:1.0-0.amzn2

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading