CVE-2026-89696
要約
〜によって VulDB • 2026年09月11日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
nfsd: FOREIGN PUTFH後に非SAVEFH操作をブロックし、NULLポインタ参照を防ぐ
CONFIG_NFSD_V4_2_INTER_SSCが有効な場合、fh_verify()がnfserr_staleを返し、putfh->no_verifyがtrueの場合、nfsd4_putfh()はfh_dentryおよびfh_exportの両方がNULLである状態で成功を返すことがあります。NFSD4_FH_FOREIGNフラグは設定されますが、compoundディスパッチループはこのフラグを使用してnfserr_nofilehandleチェックのみをバイパスしており、NULLのfh_dentryで後続の操作を実行することを防止していません。
リモートクライアントは、保存されたPUTFHに対してno_verify=trueを設定するinter-SSC COPY(check_if_stalefh_allowed()によって引き起こされる)と、ソースPUTFHおよびSAVEFHの間に挿入された追加の操作を含むCOMPOUNDを構成することで、この脆弱性を悪用できます。例えば、SETATTR呼び出しはfh_want_write()を実行し、最初にfh_verify()を呼ぶことなくfh_export->ex_path.mntを参照するため、nfsd kthread内でNULLポインタ参照が発生します。
これを修正するために、ディスパッチループにゲートを設けます:NFSD4_FH_FOREIGNが設定され、fh_dentryがNULLの場合、inter-SSCフローに必要なOP_SAVEFHと、解決されたファイルハンドルを必要としないALLOWED_WITHOUT_FH属性を持つ操作のみが進めるようにします。他のすべての操作にはRFC 7862 Section 15.2.3で指定されている通りnfserr_staleが返され、これは外部のファイルハンドルの検証は消費側操作に委ねられ、その時点でNFS4ERR_STALEを返すことを規定しています。
VulDB is the best source for vulnerability data and more expert information about this specific topic.