【活用ガイド】

JVNDB-2026-014679

LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性

概要

Linuxカーネルにおいて、次の脆弱性が修正されました。io_uring/net: io_bundle_nbufs()におけるスラブの境界外読み取りの問題です。sqe-lenは__u32型ですが、sr-lenに格納されるとint型になります。ユーザースペースがINT_MAX(例:0xFFFFFFFF)を超えるsqe-lenの値を渡すと、sr-lenが負の値にオーバーフローします。この負の値がバンドルの受信/送信パス全体に伝播します。以下の流れで問題が発生します。1. io_recv(): sel.val = sr-len(ssize_tが-1となる) 2. io_recv_buf_select(): arg.max_len = sel-val(size_tが0xFFFFFFFFFFFFFFFFとなる) 3. io_ring_buffers_peek(): max_lenが非常に大きいためbuf-lenは制限されない 4. iov[].iov_lenに0xFFFFFFFFがio_bundle_nbufs()へ流れ込む 5. io_bundle_nbufs(): min_t(int, 0xFFFFFFFF, ret)が-1を返し、retが減少するのではなく増加し、確保されたiov[]配列の境界を超える無限ループが発生します。これにより、io_bundle_nbufs()でkmalloc-64スラブの範囲外の読み取りが起き、nbufsが確保されたiovecエントリを超えて増加します。バグ内容は次のとおりです。KASAN: io_bundle_nbufs+0x128/0x160におけるスラブの境界外読み取りがサイズ8でアドレスffff888100ae05c8にてタスクexp/145によって行われました。コールトレースはio_bundle_nbufs+0x128/0x160、io_recv_finish+0x117/0xe20、io_recv+0x2db/0x1160です。修正内容として、io_sendmsg_prep()およびio_recvmsg_prep()の両方で負のsr-len値を早期に拒否する対策を講じました。sqe-lenは__u32型であるため、INT_MAXを超える値はオーバーフローを示し、有効な長さではないと判断しています。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.1 (重要) [その他]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): なし
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 6.10 以上 6.12.81 未満
  • Linux Kernel 6.13 以上 6.18.22 未満
  • Linux Kernel 6.19 以上 6.19.12 未満
  • Linux Kernel 7.0

想定される影響

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

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

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 境界外読み取り(CWE-125) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31774
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31774
  2. 関連文書 : io_uring/net: fix slab-out-of-bounds read in io_bundle_nbufs() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/90ced24c500ad4e129e9e34b7e56fd7849e350b6)
  3. 関連文書 : io_uring/net: fix slab-out-of-bounds read in io_bundle_nbufs() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/b948f9d5d3057b01188e36664e7c7604d1c8ecb5)
  4. 関連文書 : io_uring/net: fix slab-out-of-bounds read in io_bundle_nbufs() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c314b405dcc4d8b9041124f928f81715d6328bec)
  5. 関連文書 : io_uring/net: fix slab-out-of-bounds read in io_bundle_nbufs() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/1b655cd311344117d3052f6552cb20d9901c9d7c)
更新履歴

  • [2026年05月08日]
      掲載