CVE-2026-93228: svcrdma: Reject Write/Reply chunks with segcount 0

Published Sep 24, 2026
·
Updated

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

svcrdma: Reject Write/Reply chunks with segcount 0

A peer can send a Write or Reply chunk whose segcount field is zero. xdrcheckwritechunk() only rejects segcount > rcmaxpages, so zero passes the range check, and xdrinlinedecode(stream, 0) returns the current (non-NULL) cursor without advancing. The function returns true and pclallocwrite() then links a struct svcrdmachunk with chsegcount == 0 onto rcwritepcl or rcreplypcl.

An earlier patch in this series made pclforeachsegment() safe for chsegcount == 0, so this no longer drives the memory walk it used to. Rejecting the malformed frame at the decode boundary is still worthwhile as defense in depth: it keeps degenerate zero-segment chunks off the parsed chunk lists entirely, so any future consumer that walks chsegments directly cannot observe one, and it makes the zero-floor easy to backport to trees where the macro change is more intrusive. RFC 8166 has no meaning for a Write/Reply chunk that describes no remote buffer, so no legitimate client is affected.

xdrcheckreplychunk() funnels Reply chunks through xdrcheckwritechunk() and inherits the same rejection.

pclallocwrite() also links each chunk onto the parsed chunk list before filling its segment array. If a future change weakens the segcount-0 rejection, an incomplete chunk is visible to consumers during the fill loop. Reorder so that listaddtail() follows the segment fill loop, ensuring only fully-populated chunks appear on the list.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 24, 2026
CVE Published
via MITRE·03:29 PM
Data Sourced
via MITRE·03:29 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

What does an attacker need to do to trigger this condition?

The attacker must be an RDMA peer able to send a malformed Write or Reply chunk with its segcount field set to zero.

2

Will this rejection break compliant clients?

No. RFC 8166 assigns no meaning to a Write or Reply chunk that describes no remote buffer, so no legitimate client is affected.

3

Does a zero-segment chunk still cause the prior memory walk?

An earlier change made pcl_for_each_segment() safe when ch_segcount is zero, so this no longer drives the memory walk it previously could. The fix still rejects the malformed chunk during decoding so it cannot be placed on parsed chunk lists for later consumers.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203