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

high Nessus プラグイン ID 345421

概要

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

説明

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

- nfsd:RCU-protect cl_cb_session、セッション終了処理(ティアダウン)での use-after-free を修正します。DESTROY_SESSION後、セッションごとのティアダウンパスがセッションを解放する可能性がありますが、rpciod は依然として clp->cl_cb_session を逆参照するインフライトコールバックrpc_taskを保持しています。nfsd4_probe_callback_sync() は cl_callback_wq をフラッシュしますが、nfsd4_run_cb_work() が rpc_call_async() を呼び出すと、rpc_taskは rpciod に存在します。ワークキューのフラッシュはそれを待機しません。rpc_shutdown_client() は rpciod タスクを排出しますが、rpc_delay() にスタックしたタスク (例: 2 秒の NFS4ERR_DELAY 再試行) が排出よりも長持ちする可能性がある 1 秒wait_event_timeout使用します。パス rpciod を破壊します ------------ ------ unhash_session(ses) nfsd4_probe_callback_sync(clp) flush_workqueue(cl_callback_wq) /* 戻り値;rpc_taskまだ生きています */ nfsd4_put_session_locked(ses) free_session(ses) -> kfree(ses) nfsd4_cb_sequence_done() reads cb_clp->cl_cb_session /* 解放されたスラブ */ nfsd4_process_cb_update() に第 2 のウィンドウが存在します。破壊されたセッションを cl_sessions から unhash_session() がすでに削除しているために __nfsd4_find_backchannel() が NULL を返す場合、setup_callback_client() は v4.1 の早期リターンを受け取るため、clp->cl_cb_session = ses は決して起動されず、フィールドはもうすぐ解放されるセッションへのポインターを保持します。RCU で保護されたポインターに cl_cb_session を変換することで、両方を修正します: - setup_callback_client() の cl_cb_session = ses 割り当てを rpc_create() の成功後に移動し、動作バックチャネルが存在する場合にのみ公開されます。nfsd4_process_cb_update() でのエラーリターンのcl_cb_sessionを消去します。どちらのストアも rcu_assign_pointer() を使用します。- cl_cb_sessionに__rcu注釈を付ける。rpciod 側のすべてのリーダーは rcu_read_lock()/rcu_dereference() を使用して NULL をチェックし、適切なエラー、またはリキューパスにベイルします: encode_cb_sequence4args()、decode_cb_sequence4resok()、nfsd41_cb_get_slot()、nfsd41_cb_release_slot()、nfsd4_cb_prepare()、nfsd4_cb_sequence_done()。- __free_session() を kfree() から kfree_rcu() に切り替えて、RCU 猶予期間が経過するまでセッションスラブが再利用されないようにすることで、rcu_read_lock() 内の rpciod リーダーが解放したメモリを逆参照することがなくなります。- セッションポインターをnfsd_cb_seq_statusに渡し、トレースポイントにcl_cb_sessionを再読み込みさせるのではなくnfsd_cb_free_slotします。- nfsd4_cb_prepare() は、セッションが NULL のときに rpc_exit() を呼び出し、done/release パスを通じてルーティングして、コールバックをリキューします。(CVE-2026-89708)

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

ソリューション

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

参考資料

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

プラグインの詳細

深刻度: High

ID: 345421

ファイル名: unpatched_CVE_2026_89708.nasl

バージョン: 1.1

タイプ: Local

エージェント: unix

ファミリー: Misc.

公開日: 2026/9/12

更新日: 2026/9/12

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

リスク情報

VPR

リスクファクター: Medium

スコア: 4.3

パーセンタイル: 53.43

CVSS v2

リスクファクター: Low

基本値: 3.3

現状値: 2.8

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

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

CVSS v3

リスクファクター: High

基本値: 7.1

現状値: 6.5

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

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

脆弱性情報

CPE: cpe:/o:debian:debian_linux:12.0, cpe:/o:debian:debian_linux:13.0, cpe:/o:debian:debian_linux:14.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/9/11

参照情報

CVE: CVE-2026-89708