【活用ガイド】

JVNDB-2026-022841

LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました:net: enetc: NTMP DMAのUse-After-Free問題の修正。AI生成のレビューにより潜在的なDMAのUse-After-Free問題が報告されました[1]。netc_xmit_ntmp_cmd()がタイムアウトしエラーを返した場合、保留中のコマンドは明示的に中止されませんが、ntmp_free_data_mem()は無条件にDMAバッファを解放します。もしバッファが既に他で再割り当てされていると、これにより静かにメモリ破損が発生する可能性があります。これはハードウェアが最終的に保留中のコマンドを処理し、解放されたバッファの物理アドレスにDMA書き込みを行うためです。本問題を解決するため、本パッチでは以下の変更を行っています。1. cbdr->ring_lockをスピンロックからミューテックスに変更しました。NTMP操作がアトミックコンテキストから呼び出される場合を想定し、ロックは元々スピンロックでしたが、すべてのNTMPテーブルで下流対応が終了した現在、そのような使用はありません。ドライバはロックのコンテキスト内で使用済みBDの回収と関連するDMAメモリ解放(dma_free_coherent()はスリープする可能性があります)を行うため、ミューテックスロックに変更しました。2. ソフトウェアコマンドBD(struct netc_swcbd)の導入です。ハードウェアによるライトバックでBDのaddrとlenフィールドが上書きされるため、ドライバはハードウェアBDに依存して関連DMAメモリを解放できません。そこでドライバはDMAバッファポインタ、DMAアドレス、サイズを保持するソフトウェアシャドウBDを管理するようにしました。netc_xmit_ntmp_cmd()は使用中のBD数がNETC_CBDR_CLEAN_WORK(16)に達した時点でのみ古いBDを回収します。ソフトウェアBDによって正しいDMAメモリ解放が可能となっています。これに伴いstruct ntmp_dma_bufやntmp_free_data_mem()は不要となり削除されました。3. netc_xmit_ntmp_cmd()実行中は呼び出し側がring_lockを保持することを要求します。netc_xmit_ntmp_cmd()はレスポンスの消費が完了する前にring_lockを解放していました。しかしこのとき、同時に別スレッドが新しいコマンドを送信するとntmp_clean_cbdr()が起動し、DMAバッファがまだ使用中であるにもかかわらず解放される可能性があります。ring_lockの所有権を呼び出し側に移すことでレスポンスバッファの早期解放を防止します。そのためヘルパー関数ntmp_select_and_lock_cbdr()とntmp_unlock_cbdr()を追加しました。これらの変更により、DMAのUse-After-Free状態は解消され、安全かつ一貫したBDの回収およびDMAバッファのライフサイクル管理を保証します。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.8 (重要) [その他]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 6.16 以上 6.18.33 未満
  • Linux Kernel 6.19 以上 7.0.10 未満

想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

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

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 解放済みメモリの使用(CWE-416) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-53300
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-53300
  2. 関連文書 : net: enetc: fix NTMP DMA use-after-free issue - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3cade698881eb238f88cbbfec82acc2110440a3f)
  3. 関連文書 : net: enetc: fix NTMP DMA use-after-free issue - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/655d9ce9b1d3db0aa5271acb5e5101c66bd0d58b)
  4. 関連文書 : net: enetc: fix NTMP DMA use-after-free issue - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/37c8933064be714ee672b0a0523c2fd045b73b3d)
更新履歴

  • [2026年07月09日]
      掲載