CVE-2026-90293: IB/isert: post the full-feature receive buffers after session registration

Published Sep 17, 2026
·
Updated

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

IB/isert: post the full-feature receive buffers after session registration

isertputlogintx() posts the full-feature receive buffers before transportregistersession() runs, so an initiator that does not wait for the final Login Response can still have a SCSI command executed against an sesession whose setpg is NULL - the same oops as the previous patch, at targetsubmit+0xbe.

Post them from isertgetrxpdu(), which the previous patch already uses to send that response, and post them before that send: the receive queue is filled at the moment the initiator is told it may use it. Allocating there keeps the existing property that a memory allocation failure cannot happen once the final Login Response is on the wire.

The receive queue is already empty between the final Login Request and isertpostrecvm(); this moves the second point later, from a median of 92 us to 172 us over 1200 logins. Only an initiator that sends before it has been told to can reach that window, and on IB and RoCE its send is retried there until the buffers appear - isertrdmaaccept() asks for rnrretrycount = 7. iWARP has no RNR flow control, so there the same send terminates the connection instead.

Measured over rxe, 400 login cycles per run, with an initiator that does not wait: an instrumented build counted no entries to isertrecvdone() before the buffers are posted in 10 runs, where that initiator oopsed 8 of 10 unpatched runs and 5 of 10 with only the previous patch.

Not tested: iWARP, discovery sessions over iSER, and real HCAs.

Affected Software

1 affected component
Linux Kernel

Event History

Sep 17, 2026
CVE Published
via MITRE·04:08 PM
Data Sourced
via MITRE·04:08 PM
Description

Frequently Asked Questions

1

What must an attacker or initiator do to trigger the fault?

The initiator must send a SCSI command before it has received the final Login Response telling it that the receive queue may be used. The affected path can then execute the command against an se_session whose se_tpg is NULL, causing an oops at target_submit.

2

Are initiators that wait for the final Login Response exposed to this race?

No. The described window is reachable only by an initiator that sends before it has been told it may do so.

3

How does this behavior differ on IB and RoCE transports?

On IB and RoCE, a send issued during the window is retried until receive buffers appear because isert_rdma_accept() requests an rnr_retry_count of 7. The available data does not describe equivalent behavior for iWARP.

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