CVE-2026-98567 in Linux情報

要約

〜によって VulDB • 2026年10月19日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

net: xps - 範囲外のトラフィッククラスを拒否する

dev->tc_to_txq[] および dev->prio_tc_map[] の有効なエントリは dev->num_tc より小さいインデックスのものに限られます。しかし netdev_set_num_tc() は、これらの配列に触れることなく dev->num_tc を低下させます。

netdev_txq_to_tc() はすべての TC_MAX_QUEUE スロットを走査し、netdev_get_prio_tc_map() は現在の状態のエントリを返すため、残存エントリが dev->num_tc 以上のトラフィッククラスとして渡されることがあります。このクラスを netdev_txq_to_tc() から取得すると、__netif_set_xps_queue() は負の値のみを拒否し、dev->num_tc クラス用にサイズ設定された XPS マップに対してインデックスアクセスを行います:

tci = j * num_tc + tc; RCU_INIT_POINTER(new_dev_maps->attr_map[tci], map);

attr_map[] には nr_ids * num_tc のエントリが含まれており、j はマスクで指定された ID を通じて反復するため、num_tc より小さいクラスでない場合、tci が最後の ID に対するマップの末尾を超え、ストア操作がバッファオーバーランを引き起こします。

num_tc を低下させる呼び出し元はこのような残存エントリを残したままになり、mqprio_destroy() は netdev_reset_tc() の代わりに netdev_set_num_tc(dev, 0) で終了処理を行います。8 クラス設定後に 1 に変更した場合、tc_to_txq[1..7] は依然として txq 1..7 を記述します。このバグは、rx キューが 8 つの veth デバイス上で txq 2 への XPS ライトを行う際に発生しました:attr_map[] には 8 * 1 のエントリがあり、tci = j + 2 で、j == 6 の場合、88 バイトのマップの末尾を越えてストアが行われます:

BUG: KASAN: slab-out-of-bounds in __netif_set_xps_queue (net/core/dev.c:2954) Write of size 8 at addr ffff88813016bc58 by task xps_oob/634 __netif_set_xps_queue (net/core/dev.c:2954) xps_rxqs_store (net/core/net-sysfs.c:1880) netdev_queue_attr_store (net/core/net-sysfs.c:1390) Allocated by task 634: __kmalloc_noprof (mm/slub.c:5439) __netif_set_xps_queue (net/core/dev.c:2937) The buggy address is located 0 bytes to the right of allocated 88-byte region [ffff88813016bc00, ffff88813016bc58)

マップに収まらないクラスを拒否します。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

責任者

Linux

予約する

2026年09月25日

モデレーション

承諾済み

エントリ

VDB-422078

EPSS

0.00210

アクティビティ

低い

ソース

Might our Artificial Intelligence support you?

Check our Alexa App!