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 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/01 |
| 登録日 | 2026/05/08 |
| 最終更新日 | 2026/05/08 |



