| Title | LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました:netfilterのnft_set_pipapoサブシステム内に存在したpipapo_drop()関数におけるスタックの境界外読み取りの問題です。pipapo_drop()はすべての反復でrulemap[i + 1].nをpipapo_unmap()のto_offset引数として渡していました。最後の反復(i == m-field_count - 1)も含まれていました。これにより、スタック上に確保されたrulemap配列(rulemap[NFT_PIPAPO_MAX_FIELDS]として宣言され、NFT_PIPAPO_MAX_FIELDSは16です)を1要素分超えて読み込むことが発生していました。pipapo_unmap()はis_lastがtrueの場合、to_offset値を使用せずに早期リターンしますが、引数は関数本体が実行される前に呼び出し元で評価されるため、本物のスタックの境界外読み取りとなっており、KASANによって検出されました。具体的には、BUG: KASAN: stack-out-of-bounds in pipapo_drop+0x50c/0x57c [nf_tables]、サイズ4の読み取りがアドレスffff8000810e71a4で発生しました。このフレームには1つのオブジェクトがあり、その範囲は[32, 160)の'rulemap'です。バグのあるアドレスはオフセット164で、rulemap配列の末尾を正確に4バイト超えています。問題を解決するために、最終反復時にはrulemap[i + 1].nの代わりに0を渡すことで境界外読み取りを回避しました。 |
| Possible impacts | 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 8, 2026, midnight |
| Registration Date | May 25, 2026, 10:20 a.m. |
| Last Update | May 25, 2026, 10:20 a.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 5.11 以上 5.15.203 未満 |
| Linux Kernel 5.16 以上 6.1.167 未満 |
| Linux Kernel 5.6 以上 5.10.253 未満 |
| Linux Kernel 6.13 以上 6.18.19 未満 |
| Linux Kernel 6.19 以上 6.19.9 未満 |
| Linux Kernel 6.2 以上 6.6.130 未満 |
| Linux Kernel 6.7 以上 6.12.78 未満 |
| Linux Kernel 7.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月25日] 掲載 |
May 25, 2026, 10:20 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_set_pipapo: fix stack out-of-bounds read in pipapo_drop() pipapo_drop() passes rulemap[i + 1].n to pipapo_unmap() as the Although pipapo_unmap() returns early when is_last is true without BUG: KASAN: stack-out-of-bounds in pipapo_drop+0x50c/0x57c [nf_tables] This frame has 1 object: The buggy address is at offset 164 -- exactly 4 bytes past the end Pass 0 instead of rulemap[i + 1].n on the last iteration to avoid |
|---|---|
| Publication Date | May 9, 2026, 12:16 a.m. |
| Registration Date | May 9, 2026, 4:15 a.m. |
| Last Update | May 12, 2026, 11:10 p.m. |