製品・ソフトウェアに関する情報
LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性
Title LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました:rds: ib: IB接続が確立される前のFRMR登録を拒否します。rds_ib_get_mr()はconn-c_transport_dataからrds_ib_connectionを抽出し、FRWRメモリ登録のためにrds_ib_reg_frmr()に渡します。新規の発信接続では、接続ワーカーがまだrdma_cm_idを作成するrds_ib_conn_path_connect()を呼んでいないため、icはrds_ib_conn_alloc()内でi_cm_idがNULLとして割り当てられます。この状態でRDS_CMSG_RDMA_MAPを指定したsendmsg()が呼ばれると、送信パスは接続確立前に制御メッセージを解析し、rds_ib_post_reg_frmr()がic-i_cm_id-qpを逆参照してカーネルをクラッシュさせます。既存のrds_ib_reg_frmr()のガードは!icしかチェックしておらず(commit 9e630bcb7701で追加)、icは接続オブジェクトが存在すると常にNULLでないため、このケースは検知できません。KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017] RIP: 0010:rds_ib_post_reg_frmr+0x50e/0x920 Call Trace: rds_ib_post_reg_frmr (net/rds/ib_frmr.c:167) rds_ib_map_frmr (net/rds/ib_frmr.c:252) rds_ib_reg_frmr (net/rds/ib_frmr.c:430) rds_ib_get_mr (net/rds/ib_rdma.c:615) __rds_rdma_map (net/rds/rdma.c:295) rds_cmsg_rdma_map (net/rds/rdma.c:860) rds_sendmsg (net/rds/send.c:1363) ____sys_sendmsg do_syscall_64 rds_ib_get_mr()にic、i_cm_id、およびqpがすべてNULLでないことを確認するチェックを追加し、FRMR登録を進める前にこれを検証するようにしました。これは既にrds_ib_post_inv()に存在するガードに合わせたものです。接続が準備できていない場合は-ENODEVを返し、rds_cmsg_send()の既存のエラーハンドリングでユーザースペースがリトライ可能な-EAGAINに変換され、rds_conn_connect_if_down()が接続ワーカーを起動する仕組みになっています。

Possible impacts 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date April 13, 2026, midnight
Registration Date May 22, 2026, 10:55 a.m.
Last Update May 22, 2026, 10:55 a.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 4.6 以上 5.10.253 未満
Linux Kernel 5.11 以上 5.15.203 未満
Linux Kernel 5.16 以上 6.1.168 未満
Linux Kernel 6.13 以上 6.18.22 未満
Linux Kernel 6.19 以上 6.19.12 未満
Linux Kernel 6.2 以上 6.6.134 未満
Linux Kernel 6.7 以上 6.12.81 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月22日]
  掲載
May 22, 2026, 10:55 a.m.

NVD Vulnerability Information
CVE-2026-31425
Summary

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

rds: ib: reject FRMR registration before IB connection is established

rds_ib_get_mr() extracts the rds_ib_connection from conn->c_transport_data
and passes it to rds_ib_reg_frmr() for FRWR memory registration. On a
fresh outgoing connection, ic is allocated in rds_ib_conn_alloc() with
i_cm_id = NULL because the connection worker has not yet called
rds_ib_conn_path_connect() to create the rdma_cm_id. When sendmsg() with
RDS_CMSG_RDMA_MAP is called on such a connection, the sendmsg path parses
the control message before any connection establishment, allowing
rds_ib_post_reg_frmr() to dereference ic->i_cm_id->qp and crash the
kernel.

The existing guard in rds_ib_reg_frmr() only checks for !ic (added in
commit 9e630bcb7701), which does not catch this case since ic is allocated
early and is always non-NULL once the connection object exists.

KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017]
RIP: 0010:rds_ib_post_reg_frmr+0x50e/0x920
Call Trace:
rds_ib_post_reg_frmr (net/rds/ib_frmr.c:167)
rds_ib_map_frmr (net/rds/ib_frmr.c:252)
rds_ib_reg_frmr (net/rds/ib_frmr.c:430)
rds_ib_get_mr (net/rds/ib_rdma.c:615)
__rds_rdma_map (net/rds/rdma.c:295)
rds_cmsg_rdma_map (net/rds/rdma.c:860)
rds_sendmsg (net/rds/send.c:1363)
____sys_sendmsg
do_syscall_64

Add a check in rds_ib_get_mr() that verifies ic, i_cm_id, and qp are all
non-NULL before proceeding with FRMR registration, mirroring the guard
already present in rds_ib_post_inv(). Return -ENODEV when the connection
is not ready, which the existing error handling in rds_cmsg_send() converts
to -EAGAIN for userspace retry and triggers rds_conn_connect_if_down() to
start the connection worker.

Publication Date April 13, 2026, 11:16 p.m.
Registration Date April 15, 2026, 11:38 a.m.
Last Update April 18, 2026, 6:16 p.m.
Related information, measures and tools
Common Vulnerabilities List