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

critical Nessus プラグイン ID 335543

概要

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

説明

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

- xprtrdma:req のリサイクルをRPC完了から切り離す rl_kref 以前は、単一の refcount を通じて 2 つの異なる有効期間を提供していました。これは、Reply がその RPC タスクをウェイク解除できるときにゲートされ、rpcrdma_reqがその空きプールに戻ることができるときにゲートされます。マーシャルパスは、SGEがDMA-unmap(sc_unmap_count >0)を必要とする場合にのみ送信側の参照を取り、これにより、事前登録されたバッファのみを運ぶSendが例外となりました。HCAが送信バッファからDMAを読み取っている可能性がある間、返信ハンドラーはrl_krefを1から0にドロップし、リクエストを解放しました。rl_krefに狭い仕事を与えてください。RPC レイヤーは、スロット割り当てが要求を渡すときに 1 つの参照を取ります。rpcrdma_prepare_send_sges() は、WR の準備が成功した後、無条件に送信側の参照を受け取ります。xprt_rdma_free_slot() と xprt_rdma_bc_free_rqst() はRPC層参照をドロップします。
rpcrdma_sendctx_unmap() は送信側の参照をドロップします。リクエストは、両方の所有者が承認した後にのみ、フリープールに戻ります。rpcrdma_prepare_send_sges() の既存の kref_init(&req->rl_kref) 呼び出しは削除されます。初期化がスロット割り当てパス(xprt_rdma_alloc_slotおよびrpcrdma_bc_rqst_get)に移動し、リクエストが空きプールに戻る前にリリースコールバックがrl_krefを再武装します。マーシャル パスで re-init を行うと、エントリに既に存在する RPC レイヤー参照が破棄されます。次の 3 つの不変条件が続きます: - rpc_rqstによって保持されるrpcrdma_reqは rl_kref >= 1 です。xprt_rdma_alloc_slot()、rpcrdma_bc_rqst_get()、および xprt_rdma_alloc_slot() の backlog-wake ブランチは、リクエストを公開する前にそれぞれkref_init rl_krefします。この不変性がなければ、スロット割り当てとマーシャルの間で中止するRPCタスク(たとえば、call_connect中のgss_refresh障害またはシグナル)は、ゼロの refcount に対して xprt_release() -> xprt_rdma_free_slot() -> kref_put を駆動し、refcount_t飽和し、スロットを座礁させます。- 送信側の参照は、WR 準備が成功した後にのみ取得されます。rpcrdma_prepare_send_sges() におけるマッピングの失敗により、rpcrdma_sendctx_cancel() が実行され、() は sendctx の DMA マップ解除を行い、rl_krefに触れずにsc_reqをクリアします。sendctx リングは rpcrdma_sendctx_put_locked() と rpcrdma_sendctxs_destroy() のスキップエントリを sc_req == NULL でウォークするため、EIO マーシャルの失敗が連続しても reqs をrb_send_bufsで保留することはできません。- リリースコールバックは、次のコンシューマーが不変条件を満たして参入するようにrl_krefリアームします。返信が RPC を直接完了するようになりました。
rpcrdma_reply_handler() は、非 LocalInv ブランチで kref_put の代わりに rpcrdma_complete_rqst() を呼び出します。LocalInvブランチはすでにfrwr_unmap_async()からのRPCを完了しているため、影響を受けません。送信側の参照は RPC 完了よりも長持ちするようになったため、接続の切断により sendctx エントリが排出され、その未署名の送信が後で完了してウォークすることはありませんでした。rpcrdma_sendctxs_destroy() は、リクエストバッファがリセットされる前に、アクティブな範囲を歩き回り、非 NULL sc_reqで各エントリで rpcrdma_sendctx_unmap() を実行します。rpcrdma_xprt_disconnect() では rpcrdma_reqs_reset() より前に移動します。このため、送信側の refs がリリースされたとき、reqs はリセット前の状態のままです。ドレインは、バックチャネルパスでティアダウン順序の危険を生じさせます。新しい有効期間では、rpcrdma_req_release() から bc_prealloc req をリリースすると、それが bc_pa_list に再度追加されます。xprt_rdma_destroy() の切断は、xprt_destroy_backchannel() がすでに bc_pa_list を空にした後に実行されるため、ドレインされたリクエストが漏洩します。xprt_rdma_destroy() は、それらを再要求するために、切断後に xprt_rdma_bc_destroy(xprt, 0) を 2 回実行するようになりました。(CVE-2026-72473)

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

ソリューション

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

参考資料

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

プラグインの詳細

深刻度: Critical

ID: 335543

ファイル名: unpatched_CVE_2026_72473.nasl

バージョン: 1.1

タイプ: Local

エージェント: unix

ファミリー: Misc.

公開日: 2026/8/15

更新日: 2026/8/15

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

リスク情報

VPR

リスクファクター: Low

スコア: 3

パーセンタイル: 23.67

CVSS v2

リスクファクター: High

基本値: 7.5

現状値: 6.4

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

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

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:11.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/8/15

参照情報

CVE: CVE-2026-72473