LinuxのLinux Kernelにおける不特定の脆弱性
タイトル LinuxのLinux Kernelにおける不特定の脆弱性
概要

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のマッチ関数における早すぎるリターンにあります。最後のフィールドを処理するときは、全入力サイズが完全に消費されるまで処理を続け、マップに古いビットが残らないようにすべきです。

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

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

公表日 2026年5月6日0:00
登録日 2026年5月11日11:07
最終更新日 2026年5月11日11:07
CVSS3.0 : 緊急
スコア 9.4
ベクター 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
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年05月11日]
  掲載
2026年5月11日11:07

NVD脆弱性情報
CVE-2026-43114
概要

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
with 'ipv4 . port' key, i.e. nft -f foo.

This works. Then, it reloads the set after a flush:
(echo flush set t s; cat foo) | nft -f -

This is expected to work, because its the same set after all and it was
already loaded once.

But with avx2, this fails: nft reports a clashing element.

The reported clash is of following form:

We successfully re-inserted
a . b
c . d

Then we try to insert a . d

avx2 finds the already existing a . d, which (due to 'flush set') is marked
as invalid in the new generation. It skips the element and moves to next.

Due to incorrect masking, the skip-step finds the next matching
element *only considering the first field*,

i.e. we return the already reinserted "a . b", even though the
last field is different and the entry should not have been matched.

No such error is reported for the generic c implementation (no avx2) or when
the last field has to use the 'nft_pipapo_avx2_lookup_slow' fallback.

Bisection points to
7711f4bb4b36 ("netfilter: nft_set_pipapo: fix range overlap detection")
but that fix merely uncovers this bug.

Before this commit, the wrong element is returned, but erronously
reported as a full, identical duplicate.

The root-cause is too early return in the avx2 match functions.
When we process the last field, we should continue to process data
until the entire input size has been consumed to make sure no stale
bits remain in the map.

公表日 2026年5月6日19:16
登録日 2026年5月7日4:08
最終更新日 2026年5月9日2:54
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
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:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧