| Title | LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性 |
|---|---|
| Summary | 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を超える値はオーバーフローを示し、有効な長さではないと判断しています。 |
| Possible impacts | 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 1, 2026, midnight |
| Registration Date | May 8, 2026, 12:24 p.m. |
| Last Update | May 8, 2026, 12:24 p.m. |
| CVSS3.0 : 重要 | |
| Score | 7.1 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H |
| 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 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月08日] 掲載 |
May 8, 2026, 12:24 p.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: io_uring/net: fix slab-out-of-bounds read in io_bundle_nbufs() sqe->len is __u32 but gets stored into sr->len which is int. When 1. io_recv(): sel.val = sr->len (ssize_t gets -1) This results in a slab-out-of-bounds read in io_bundle_nbufs() from BUG: KASAN: slab-out-of-bounds in io_bundle_nbufs+0x128/0x160 Fix this by rejecting negative sr->len values early in both |
|---|---|
| Publication Date | May 2, 2026, 12:16 a.m. |
| Registration Date | May 2, 2026, 4:07 a.m. |
| Last Update | May 7, 2026, 11:29 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.10 | 6.12.81 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 | 6.18.22 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.12 | |||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | |||||