CVE-2026-23244: LinuxカーネルのNVMeドライバにおけるメモリ割り当ての不具合について

March 18, 2026 ·

概要

CVE-2026-23244は、LinuxカーネルのNVMe (Non-Volatile Memory Express) ドライバにおけるメモリ割り当ての不具合に関する脆弱性です。具体的には、nvme_pr_read_keys()関数がユーザー空間から受け取るnum_keys値に基づいてメモリを割り当てる際に、最大値であるPR_KEYS_MAX (64K) を超える大きな値が渡されると、最大で約4MBもの過剰なメモリ割り当てを試みる可能性があります。

この過剰な割り当て試行は、ページアロケータにおいて警告(WARNING)を発生させ、システムリソースの消費や安定性への影響を引き起こすことが報告されています。この問題は、メモリ割り当て関数をkzalloc()からkvzalloc()に変更することで修正されました。

影響範囲

この脆弱性は、影響を受ける可能性のあるLinuxカーネルバージョンでNVMeドライバを使用しているシステムに影響を及ぼす可能性があります。具体的な影響バージョンについては、ご利用のディストリビューションやカーネルベンダーの情報を参照してください。

想定される影響

  • **システムリソースの枯渇**: 過剰なメモリ割り当て試行により、システムメモリが不必要に消費される可能性があります。
  • **システム安定性の低下**: ページアロケータからの警告ログが頻繁に発生し、システムのパフォーマンスや安定性に悪影響を与える可能性があります。
  • **サービス拒否(DoS)**: 悪意のあるユーザー空間アプリケーションによって繰り返しこの脆弱性が悪用された場合、システムが不安定になり、サービス拒否状態に陥る可能性も考えられます。

攻撃成立条件・悪用状況

この脆弱性は、悪意のある、またはバグのあるユーザー空間アプリケーションが、NVMeドライバのnvme_pr_read_keys()関数に対して、非常に大きなnum_keys値を渡すことで成立します。

現時点では、この脆弱性が実際に悪用されたという具体的な報告は確認されていません。

推奨対策

今すぐできる対策

  • **Linuxカーネルのアップデート**: 修正が適用された最新のLinuxカーネルバージョンへ速やかにアップデートすることを強く推奨します。ご利用のOSベンダーやディストリビューションが提供するセキュリティパッチを適用してください。

中長期的な対策

  • **システム監視の強化**: ページアロケータに関する警告ログ(例: WARNING: mm/page_alloc.c)や、システム全体のメモリ使用量の異常を継続的に監視する体制を強化してください。
  • **セキュリティパッチ適用プロセスの確立**: 定期的なセキュリティパッチの適用計画を策定し、常にシステムを最新の状態に保つ運用を徹底してください。

一時的な緩和策

現時点では、この脆弱性に対する直接的な一時的な緩和策は報告されていません。根本的な解決策として、カーネルのアップデートが推奨されます。

確認方法

  • **カーネルバージョンの確認**: 現在稼働しているLinuxカーネルのバージョンを確認し、修正が適用されているバージョンであるかを確認してください。
  • **システムログの確認**: dmesgコマンドやシステムログ(例: /var/log/messages)を確認し、ページアロケータに関する警告メッセージ(例: WARNING: mm/page_alloc.c:5216 at __alloc_frozen_pages_noprof)が出力されていないかを確認してください。

参考情報