Critical severity · published Sep 11, 2026
CVE-2026-89530
svcrdma: Reject inline replies that overflow the pull-up buffer
9.8
CVSS
0.5%
EPSS
No
On KEV
Description
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Reject inline replies that overflow the pull-up buffer
An RPC-over-RDMA client can request a reply, such as an NFS READ
payload, without providing a Write list or a Reply chunk to carry
it. When such a reply needs more scatter/gather entries than the
device's Send Queue supports, svc_rdma_pull_up_needed() selects
pull-up and svc_rdma_pull_up_reply_msg() linearizes the whole
reply into sctxt->sc_xprt_buf. That buffer is only sc_max_req_size
bytes, while the reply on this path is bounded only by the client's
request, so svc_rdma_xb_linearize() copies past the end of the
buffer and corrupts adjacent slab memory. The oversized length is
then stored in sc_sges[0].length and posted, so the device also
reads beyond the mapped region.
The SGE-exhaustion branch is the only pull-up path that can exceed
the buffer: the threshold branch pulls up only replies smaller
than RPCRDMA_PULLUP_THRESH, and replies that fit the device's SGE
budget are sent directly without linearization. Make
svc_rdma_pull_up_needed() report -E2BIG when the reply it would
pull up cannot fit sc_max_req_size, and fail the request with
ERR_CHUNK as RFC 8166 Section 4.5.3 directs rather than dropping
the connection.
The helper no longer answers a simple yes/no question: it now
reports pull-up, no pull-up, or -E2BIG for a reply too large to
linearize. Rename svc_rdma_pull_up_needed() to
svc_rdma_check_pull_up() so its name no longer implies a boolean
predicate.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 39% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
LI
Linux · Linux
e248aa7be86e8179f20ac0931774ecd746f3f5bf before 8068358f445a11296328ffa7c524701596814a17; e248aa7be86e8179f20ac0931774ecd746f3f5bf before fcd91b9957462d398792201c239dffaeff1cc8b2; e248aa7be86e8179f20ac0931774ecd746f3f5bf before 1949dd1576f7a8aa161b1330c6125df9d53046d5; e248aa7be86e8179f20ac0931774ecd746f3f5bf before 8ec60eb51fae37cd3d334ff26e4a7d6fb21ff7cf; e248aa7be86e8179f20ac0931774ecd746f3f5bf before 0fbe20dfe74b783d255bf389a6ea77aa25dc7860; 9b65b18f817d9ada2bf67351f24bdcce6789a0bb; +4 more · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-89530
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-89530
git.kernel.org
https://git.kernel.org/stable/c/0fbe20dfe74b783d255bf389a6ea77aa25dc7860
git.kernel.org
https://git.kernel.org/stable/c/1949dd1576f7a8aa161b1330c6125df9d53046d5
git.kernel.org
https://git.kernel.org/stable/c/8068358f445a11296328ffa7c524701596814a17
git.kernel.org
https://git.kernel.org/stable/c/8ec60eb51fae37cd3d334ff26e4a7d6fb21ff7cf
git.kernel.org
https://git.kernel.org/stable/c/fcd91b9957462d398792201c239dffaeff1cc8b2
More from Linux
9.8
CVE-2025-39682
tls: fix handling of zero-length records on the rx_list
8.8
CVE-2026-53266
netfilter: bridge: make ebt_snat ARP rewrite writable
7.8
CVE-2026-53362
ipv6: account for fraggap on the paged allocation path
7.8
CVE-2026-31431
crypto: algif_aead - Revert to operating out-of-place
7.8
CVE-2025-38352
posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()
