| Title | LinuxのLinux Kernelにおける不特定の脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました:netfilterのnft_set_pipapo_avx2において、期限切れ時に非一致エントリを返さないようにする新しいテストケースがavx2のマッチング関数を使用すると予期せず失敗します。テストは最初に「ipv4 . port」キーを持つランダムに生成されたpipapoセットを読み込み、正常に動作します。その後、フラッシュ後にセットを再読み込みします:(echo flush set t s; cat foo) | nft -f -。期待されるのは同じセットで動作することですが、avx2では失敗し、nftは要素の衝突を報告します。報告された衝突は次の形を取ります:a . bとc . dを正常に再挿入し、その後a . dを挿入しようとします。avx2は既に存在するa . dを見つけますが("flush set"のため新世代では無効としてマークされています)、要素をスキップして次に進みます。不適切なマスキングにより、スキップステップは最初のフィールドのみを考慮して次の一致要素a . bを返します。このため、最後のフィールドが異なるにもかかわらず、本来はマッチすべきでないエントリを返してしまいます。ジェネリックなC実装(avx2なし)や最後のフィールドで'nft_pipapo_avx2_lookup_slow'フォールバックを使う場合、このエラーは発生しません。バイセクションは7711f4bb4b36("netfilter: nft_set_pipapo: fix range overlap detection")に関連しますが、その修正は単にこのバグを露呈しただけです。このコミット以前は誤った要素が返されていましたが、誤って完全な重複として報告されていました。根本原因はavx2のマッチ関数における早すぎるリターンにあります。最後のフィールドを処理するときは、全入力サイズが完全に消費されるまで処理を続け、マップに古いビットが残らないようにすべきです。 |
| Possible impacts | 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアの一部が停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 6, 2026, midnight |
| Registration Date | May 11, 2026, 11:07 a.m. |
| Last Update | May 11, 2026, 11:07 a.m. |
| CVSS3.0 : 緊急 | |
| Score | 9.4 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L |
| Linux |
| Linux Kernel 5.7 以上 6.6.136 未満 |
| Linux Kernel 6.13 以上 6.18.24 未満 |
| Linux Kernel 6.19 以上 6.19.14 未満 |
| Linux Kernel 6.7 以上 6.12.83 未満 |
| Linux Kernel 7.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月11日] 掲載 |
May 11, 2026, 11:07 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry New test case fails unexpectedly when avx2 matching functions are used. The test first loads a ranomly generated pipapo set This works. Then, it reloads the set after a flush: This is expected to work, because its the same set after all and it was But with avx2, this fails: nft reports a clashing element. The reported clash is of following form: We successfully re-inserted Then we try to insert a . d avx2 finds the already existing a . d, which (due to 'flush set') is marked Due to incorrect masking, the skip-step finds the next matching i.e. we return the already reinserted "a . b", even though the No such error is reported for the generic c implementation (no avx2) or when Bisection points to Before this commit, the wrong element is returned, but erronously The root-cause is too early return in the avx2 match functions. |
|---|---|
| Publication Date | May 6, 2026, 7:16 p.m. |
| Registration Date | May 7, 2026, 4:08 a.m. |
| Last Update | May 9, 2026, 2:54 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.7 | 6.6.136 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 | 6.12.83 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 | 6.18.24 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.14 | |||
| 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:*:*:*:*:*:* | |||||