JVNDB-2026-023802 | |
LinuxのLinux Kernelにおける不特定の脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました:「wireguard: device: enable threaded NAPI」のリバートです。これは、アップストリームのコミットdb9ae3b6b43c79b1ba87eea849fd65efa05b4b2eに対応する933466fc50a8e4eb167acbd0d8ec96a078462e9cのコミットを元に戻すものです。CiliumがWireGuardを暗号化の基盤として利用しているk8s Podの東西トラフィックが特定のピアノード間で完全に停止する現象について、3件の独立した本番環境のユーザーレポートを受けています。状況は以下の通りです。 - 発生頻度は非常に低いですが、重いネットワーク負荷のもとでランダムに発生します。 - 問題が発生すると、そのWireGuardピアに対する復号側処理が完全に停止し、他のピアは正常に動作し続けます。新規接続も該当ピアへのものは停止します。 - 影響を受けるのは復号側だけであり、暗号化側は影響を受けません。 - 発生後は回復せず、その状態が維持されます。CPUやメモリの状態は正常で、リークや忙しいループ、クラッシュも見られません。 - 影響を受けたシステムでのbpftrace解析ではwg_prev_queue_enqueueが失敗し、ピアのrx_queue向けのMAX_QUEUED_PACKETS(1024 skbs)に達していることが確認されました。 - また、その状態に達した後はwg_packet_rx_pollが該当ピアに対して呼ばれなくなる一方で、他のピアには通常通り呼ばれていることも判明しています。 - コミットdb9ae3b("wireguard: device: enable threaded NAPI")によりWireGuardはデフォルトでスレッド化されたNAPIに切り替わりました。この切り替えが問題発生のトリガーであり、CPUのホットプラグも起きていません(例:5bd8de2コミットによるCPUマスク選択の変更)。 - v5.15系およびv6.1系の安定カーネルで問題が観察されており、v5.10系安定カーネルでは問題が報告されていません。v6.6系でも報告はありません(関連した議論は[0]参照)。 - WireGuardドライバー内でv5.10からv5.15への主な違いはデフォルトでスレッド化されたNAPIへの切り替えです。問題の詳細な解析は以下の通りです。1) 復号に到着したskbsは、wg_packet_consume_data内のwg_queue_enqueue_per_device_and_peerを通じてpeer->rx_queueに入れられます。2) この関数はwg_prev_queue_enqueueにより、MAX_QUEUED_PACKETS(1024)を超えない場合のみMPSCピアキューにskbを移動させます。3) エンキューが成功すると、skbはデバイスキューにも入れられ、ラウンドロビンで次のオンラインCPUが選ばれ、復号ワーカーがスケジュールされます。4) スケジュールされたwg_packet_decrypt_workerはキューからskbを取得し復号処理を行い、成功後wg_queue_enqueue_per_peer_rxを呼び出します。5) その関数は成功時に状態をPACKET_STATE_CRYPTEDに更新し、ピアごとのnapiインスタンスでnapi_scheduleを呼び出します。6) NAPIはwg_packet_rx_pollでポーリングします。wg_prev_queue_peekはpeer->rx_queueをチェックし、キャッシュされていなければwg_prev_queue_dequeueを呼び出し、そうでなければキャッシュ済みskbを返します(後にwg_prev_queue_drop_peekedでキャッシュはクリアされます)。7) 順序の観点では、peer->rx_queueにはskbが順序通りに存在している一方、デバイスキューの各CPUワーカースレッドはグローバルな順序の観点から復号を完了し、skbをPACKET_STATE_CRYPTEDに状態変更して非順序に処理しています。8) システムが負荷下にあると、最初に来たパケットが復号ワーカーのスケジュールを長時間待たされる状況が観察されます。9) 他のCPUはその間に復号を終え、napi_scheduleを呼びます。10) wg_packet_rx_pollはpeer->rx_queueから順番にskbを取り出しますが、最初のskbの状態がまだPACKET_STATE_UNCRYPTEDのままであるのを見て、NAPIポーリング処理はそこで終了します。---文章は途中で切れていますが、以上が脆弱性の説明とトラブルシューティング状況の要約です。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/24 |
| 登録日 | 2026/07/16 |
| 最終更新日 | 2026/07/16 |



