Linux Distros のパッチ未適用の脆弱性: CVE-2026-99081

critical Nessus プラグイン ID 371489

概要

Linux/Unix ホストには、ベンダーにより修正されていないことを示す脆弱性を持つ複数のパッケージがインストールされています。

説明

Linux/Unix ホストには、ベンダーが提供するパッチが利用できない脆弱性の影響を受ける複数のパッケージがインストールされています。

- bnxt_en:パディングされた小さなパケットに対する DMA マッピング長を修正します Stefan Fleischmann 氏は、Intel IOMMU DMA が、VLAN/macvlan インターフェイスでパケットを送信する際に、 BCM57412 NetXtreme-E NIC で読み取り障害があることを報告しました: DMAR: [DMA 読み取り NO_PASID] リクエストデバイス [18:00.0] 障害アドレス 0xfc499000 [障害理由 0x06] PTE 読み取りアクセスが設定されていません bnxt_en 0000:18:00.0 eno1np0: msg {0xb4 0x41a} len を放棄しています: ファームウェアのステータスによる0:0x2000001 ...
NETDEV WATCHDOG:eno1np0(bnxt_en):送信キュー 0 がタイムアウトしました 障害アドレス(0xfc499000)は正確な 4KB ページ境界上にあり、DMA 読み取りバッファオーバーランを示しています。bnxt_start_xmit() では、42 バイトのタグなし ARP フレームなどの、BNXT_MIN_PKT_SIZE(52 バイト)未満のパケットがパディングされます:if (length < BNXT_MIN_PKT_SIZE) { pad = BNXT_MIN_PKT_SIZE - length; if (skb_pad(skb, pad)) goto tx_kick_pending; length = BNXT_MIN_PKT_SIZE; } mapping = dma_map_single(&pdev->dev, skb->data、len、DMA_TO_DEVICE);...
dma_unmap_len_set(tx_buf、len、len);ただし、「len」は skb_headlen(skb) より前(例:42 バイト)に初期化され、パディング後は調整されません。その結果、dma_map_single() と dma_unmap_len_set() は 42 バイトのみをマッピングして追跡します。後で、ハードウェア TX バッファ記述子は、パディングの長さでプログラムされます。
txbd->tx_bd_len_flags_type = cpu_to_le32(((len + pad) << TX_BD_LEN_SHIFT) | フラグ |TX_BD_FLAGS_PACKET_END);このため、NIC DMA エンジンは、DMA がマッピングされたのは 42 バイトのみである領域から 52 バイトを読み取るように指示されます。skb->dataが4KBページの境界近く(次のページの「pad」バイト内)で終了する場合、ハードウェアDMA読み取りがマップされていない隣接ページにオーバーランし、IOMMU障害をトリガーします。
この問題は、コミット 447cbe95ebb9(vlan:HW VLAN オフロードを切り替えるときのskb_under_panicと競合を修正)後に明らかになりました。これは、余分な VLAN ヘッドルームを予約すると、LL_RESERVED_SPACEが 48 バイトから 64 バイトに丸められ、skb->data オフセットがシフトされ、小さなフレームがページ境界に対して右に着地する可能性があるためです。パディングが skb を線形化する可能性があるため、skb_shinfo(skb)->nr_frags がサンプリングされる前に、bnxt_start_xmit() で skb_put_padto(skb, BNXT_MIN_PKT_SIZE) を使用してこれを修正します。これにより、skb->len と skb_headlen(skb) がパディングサイズを反映し、dma_map_single() がバッファ全体をマッピングし、記述子の長さに一本が一致するようにします。
これにより、一時的な「pad」変数およびマスキングロジックも削除されます。パディングは SW USO ブランチの後に行われます。そうでなければ、bnxt_sw_udp_gso_xmit() はパディングを UDP ペイロードとみなし、それを余分なセグメントに送信します。注意:SW USO セグメントはまだパディングされていません:IPv4 では、10 バイト未満の UDP ペイロードを運ぶセグメント(小さなgso_size、または最後の短いセグメント)は、BNXT_MIN_PKT_SIZEより短いフレームとして送信されます。これは別の問題であり、フォローアップパッチに残されています。(CVE-2026-99081)

Nessus は、ベンダーから報告されたパッケージの存在に依存していることに注意してください。

ソリューション

現時点で既知の解決策はありません。

参考資料

https://security-tracker.debian.org/tracker/CVE-2026-99081

プラグインの詳細

深刻度: Critical

ID: 371489

ファイル名: unpatched_CVE_2026_99081.nasl

バージョン: 1.1

タイプ: Local

エージェント: unix

ファミリー: Misc.

公開日: 2026/10/23

更新日: 2026/10/23

サポートされているセンサー: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

リスク情報

VPR

リスクファクター: Low

スコア: 3

パーセンタイル: 23.71

CVSS v2

リスクファクター: High

基本値: 7.5

現状値: 6.4

ベクトル: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS スコアのソース: CVE-2026-99081

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 9

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:U/RL:U/RC:C

脆弱性情報

CPE: cpe:/o:debian:debian_linux:12.0, p-cpe:/a:debian:debian_linux:linux

必要な KB アイテム: Host/local_checks_enabled, Host/cpu, global_settings/vendor_unpatched, Host/OS/identifier

エクスプロイトの容易さ: No known exploits are available

脆弱性公開日: 2026/10/23

参照情報

CVE: CVE-2026-99081