製品・ソフトウェアに関する情報
LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性
Title LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性
Summary

Linuxカーネルにおいて、NFSDのエクスポートのputコールバックでのサブオブジェクトのクリーンアップ処理が不適切で、NULLポインタ参照が発生する可能性がある脆弱性が修正されました。具体的には、svc_export_put()関数が最後の参照解放時にRCU猶予期間を考慮せずにpath_put()とauth_domain_put()を即時に呼び出していたため、RCUリーダーが保持している参照が無効となり、使用中のサブオブジェクトが解放されてしまう問題がありました。この問題を解決するために、遅延コールバックの仕組みを用いてサブオブジェクトの解放処理をRCU猶予期間後のスリープ可能なコンテキストで行うように変更しました。さらに、専用のワークキューを用いてシャットダウン時の処理の停滞を防ぐ対策も施しました。これにより、NULLポインタ参照による不具合を防止します。

Possible impacts 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date April 3, 2026, midnight
Registration Date May 22, 2026, 10:56 a.m.
Last Update May 22, 2026, 10:56 a.m.
CVSS3.0 : 重要
Score 7.8
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 6.14 以上 6.18.20 未満
Linux Kernel 6.19 以上 6.19.10 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月22日]
  掲載
May 22, 2026, 10:56 a.m.

NVD Vulnerability Information
CVE-2026-31404
Summary

In the Linux kernel, the following vulnerability has been resolved:

NFSD: Defer sub-object cleanup in export put callbacks

svc_export_put() calls path_put() and auth_domain_put() immediately
when the last reference drops, before the RCU grace period. RCU
readers in e_show() and c_show() access both ex_path (via
seq_path/d_path) and ex_client->name (via seq_escape) without
holding a reference. If cache_clean removes the entry and drops the
last reference concurrently, the sub-objects are freed while still
in use, producing a NULL pointer dereference in d_path.

Commit 2530766492ec ("nfsd: fix UAF when access ex_uuid or
ex_stats") moved kfree of ex_uuid and ex_stats into the
call_rcu callback, but left path_put() and auth_domain_put() running
before the grace period because both may sleep and call_rcu
callbacks execute in softirq context.

Replace call_rcu/kfree_rcu with queue_rcu_work(), which defers the
callback until after the RCU grace period and executes it in process
context where sleeping is permitted. This allows path_put() and
auth_domain_put() to be moved into the deferred callback alongside
the other resource releases. Apply the same fix to expkey_put(),
which has the identical pattern with ek_path and ek_client.

A dedicated workqueue scopes the shutdown drain to only NFSD
export release work items; flushing the shared
system_unbound_wq would stall on unrelated work from other
subsystems. nfsd_export_shutdown() uses rcu_barrier() followed
by flush_workqueue() to ensure all deferred release callbacks
complete before the export caches are destroyed.

Reviwed-by: Jeff Layton <jlayton@kernel.org>

Publication Date April 4, 2026, 1:16 a.m.
Registration Date April 15, 2026, 11:24 a.m.
Last Update April 7, 2026, 10:20 p.m.
Related information, measures and tools
Common Vulnerabilities List