CVE-2026-90293 in Linux信息

摘要

由 VulDB • 2026-09-18

在 Linux 内核中,已修复以下漏洞:

IB/isert:在会话注册后发布全功能接收缓冲区

isert_put_login_tx() 在 __transport_register_session() 运行之前发布了全功能接收缓冲区,因此未等待最终登录响应(Login Response)的发起方仍可能对 se_tpg 为 NULL 的 se_session 执行 SCSI 命令——这与前一个补丁中的 oops 相同,发生在 target_submit+0xbe 处。

改为从 isert_get_rx_pdu() 发布这些缓冲区,该函数在前一个补丁中已用于发送此响应,并在发送之前进行发布:接收队列在告知发起方可以使用它时被填充。在此处分配内存可保持现有属性,即一旦最终登录响应在网络上传输后,就不会发生内存分配失败的情况。

在最终登录请求和 isert_post_recvm() 之间,接收队列已经为空;这将第二个时间点从平均 92 us 推迟到 172 us(基于 1200 次登录测试)。只有那些在被指示之前就发送数据的发起方才能触及该窗口,并且在 IB 和 RoCE 上,其发送操作会在此处重试直到缓冲区出现——isert_rdma_accept() 请求 rnr_retry_count = 7。iWARP 没有 RNR(Receiver Not Ready)流控机制,因此在这种情况下,相同的发送操作会导致连接终止。

在 rxe 环境下测量,每次运行包含 400 次登录周期,使用未等待的发起方:经过插桩构建的版本显示,在缓冲区发布之前,isert_recv_done() 没有记录到任何条目(共 10 次运行)。在未打补丁的情况下,该发起方导致 oops 的情况为 10 次中的 8 次;仅应用前一个补丁时,则为 10 次中的 5 次。

未测试:iWARP、通过 iSER 的发现会话以及真实 HCA(主机通道适配器)。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

来源

Do you want to use VulDB in your project?

Use the official API to access entries easily!