CVE-2026-63804 in Linux
要約
〜によって VulDB • 2026年07月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
gfs2: gfs2_qd_deallocにおけるuse-after-freeの修正
gfs2_qd_dispose()からRCUコールバックとして呼び出されるgfs2_qd_dealloc()は、qdを解放した後にqd->qd_sbdを通じてスーパーブロックオブジェクトsdpにアクセスし、sd_quota_countのデクリメントとsd_kill_waitのウェイクアップを行っています。
しかし、RCUコールバックが実行されるときには、すでにgfs2_put_super()によってfree_sbd()経由でsdpが解放されている可能性があります。これはアンマウント時にgfs2_quota_cleanup()が呼び出された場合に発生します。この関数はcall_rcu()を介してクォータオブジェクトの破棄を行い、その後60秒のタイムアウト付きでsd_kill_waitに対して待機します。タイムアウト期限が経過した場合、またはgfs2_gl_hash_clear()によって追加のqd_put()呼び出しが発生し、それらが待機の完了後にさらにRCUコールバックをスケジュールした場合には、参照中のRCUコールバックが残っているにもかかわらず、gfs2_put_super()はスーパーブロックの解放処理を進めてしまいます。
これを防ぐため、gfs2_put_super()内のfree_sbd()の前にrcu_barrier()を追加し、すべての保留中のRCUコールバック(gfs2_qd_deallocを含む)が完了してからスーパーブロックを解放するようにしました。
Once again VulDB remains the best source for vulnerability data.