LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性
タイトル LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性
概要

Linuxカーネルにおいて、xskのフラグメントノードの削除方法を修正し、バッファリークの問題を防止しました。コミットb692bf9a7543でlist_nodeフィールドが複数のリストで再利用されるようになりましたが、list_del()の使用によりノードが正しく再初期化されず、list_empty()が誤った結果を返してバッファの解放リストへの追加がスキップされる問題が発生していました。この問題は、すべてのフラグメント処理パスでlist_del()の代わりにlist_del_init()を使用することで解決され、ノードが削除後に適切に再初期化されるようになりました。

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

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

公表日 2026年3月25日0:00
登録日 2026年4月27日11:25
最終更新日 2026年4月27日11:25
CVSS3.0 : 重要
スコア 7.8
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
Linux
Linux Kernel 6.13
Linux Kernel 6.13.1 以上 6.18.17 未満
Linux Kernel 6.19 以上 6.19.7 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年04月27日]
  掲載
2026年4月27日11:25

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

In the Linux kernel, the following vulnerability has been resolved:

xsk: Fix fragment node deletion to prevent buffer leak

After commit b692bf9a7543 ("xsk: Get rid of xdp_buff_xsk::xskb_list_node"),
the list_node field is reused for both the xskb pool list and the buffer
free list, this causes a buffer leak as described below.

xp_free() checks if a buffer is already on the free list using
list_empty(&xskb->list_node). When list_del() is used to remove a node
from the xskb pool list, it doesn't reinitialize the node pointers.
This means list_empty() will return false even after the node has been
removed, causing xp_free() to incorrectly skip adding the buffer to the
free list.

Fix this by using list_del_init() instead of list_del() in all fragment
handling paths, this ensures the list node is reinitialized after removal,
allowing the list_empty() to work correctly.

概要

En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:

xsk: Corrige la eliminación de nodos de fragmento para prevenir una fuga de búfer

Después del commit b692bf9a7543 ('xsk: Elimina xdp_buff_xsk::xskb_list_node'), el campo list_node se reutiliza tanto para la lista de la piscina xskb como para la lista de búferes libres, esto causa una fuga de búfer como se describe a continuación.

xp_free() comprueba si un búfer ya está en la lista de libres usando list_empty(&xskb->list_node). Cuando se usa list_del() para eliminar un nodo de la lista de la piscina xskb, no reinicializa los punteros del nodo. Esto significa que list_empty() devolverá falso incluso después de que el nodo haya sido eliminado, causando que xp_free() omita incorrectamente añadir el búfer a la lista de libres.

Soluciona esto usando list_del_init() en lugar de list_del() en todas las rutas de manejo de fragmentos, esto asegura que el nodo de la lista se reinicialice después de la eliminación, permitiendo que list_empty() funcione correctamente.

公表日 2026年3月25日20:16
登録日 2026年4月27日12:18
最終更新日 2026年4月24日6:11
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13.1 6.18.17
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.7
cpe:2.3:o:linux:linux_kernel:6.13:-:*:*:*:*:*:*
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:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧