CVE-2026-93252 in Linux情報

要約

〜によって VulDB • 2026年09月24日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

ocfs2: ocfs2_init_acl()における循環的なロック依存関係の修正

lockdep警告により、`&oi->ip_xattr_sem`と`&journal->j_trans_barrier`の間で循環的なロック依存関係が検出されています。

WARNING: possible circular locking dependency detected is trying to acquire lock: (&oi->ip_xattr_sem){++++}-{4:4}, at: ocfs2_init_acl+0x2fd/0x7e0
fs/ocfs2/acl.c:367

but task is already holding lock: (&journal->j_trans_barrier){.+.+}-{4:4}, at: ocfs2_start_trans+0x3ab/0x700
fs/ocfs2/journal.c:369

デッドロックは、以下の2つのコードパスに関与しています。Path 1 (setxattr) では、`ocfs2_xattr_set()`が`ip_xattr_sem`(ライト)を取得し、その後トランザクションを開始して`j_trans_barrier`(リード)を取得します。また、Path 2 (mkdir/mknod) では、`ocfs2_mknod()`がトランザクション(`j_trans_barrier`のリード)を開始した後、親ディレクトリのデフォルトACLを取得するために`ip_xattr_sem`(リード)の取得を試みる`ocfs2_init_acl()`を呼び出します。

rwセマフォはライター優先度の影響を受けるため、`j_trans_barrier`上の保留中のライター(例:ジャーナルコミットスレッド)がPath 1をブロックさせ、その一方でPath 2はPath 1による`ip_xattr_sem`の解放待ちでブロックされます。

このパッチは、OCFS2トランザクションを開始する前にACL状態を事前に計算することでロック順序を修正し、POSIX ACLストレージのセマンティクスおよび既存のinode/セキュリティ初期化順を維持します。親ディレクトリのデフォルトACLを読み取り、新しいinodeのACLをトランザクションの外で準備することにより、`ip_xattr_sem`は常に`j_trans_barrier`の前に取得されます。

`struct ocfs2_acl_state`は準備されたACL状態をカプセル化し、`ocfs2_acl_init_prepare()`および`ocfs2_acl_init_release()`は`ocfs2_mknod()`と`ocfs2_init_security_and_acl()`間のコードの重複を防ぎます。`ocfs2_calc_xattr_init()`および`ocfs2_init_acl()`はこの事前に計算された状態を使用し、内部での`ip_xattr_sem`取得や冗長なディスク読み取りを削除します。

さらに、`ocfs2_xattr_set_handle()`からの`ip_xattr_sem`の取得を削除しました。この関数は、まだinodeハッシュに挿入されておらずdentryにもアタッチされていない新しいinodeの初期化中にのみ使用されるため、同時アクセスのリスクはなく、ロックは不要です。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年09月17日

モデレーション

承諾済み

エントリ

VDB-409466

EPSS

0.00000

アクティビティ

非常低い

ソース

Want to stay up to date on a daily basis?

Enable the mail alert feature now!