JVNDB-2026-013916 | |
LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。ocfs2では、unlinkとdio_end_io_writeの間でデッドロックが発生する可能性がありました。ocfs2_unlinkは最初にorphanディレクトリのinode_lockを取得し、その後ip_alloc_semを取得します。一方、ocfs2_dio_end_io_writeではこれらのロックを逆の順序で取得します。これにより、ロッククラスocfs2_sysfile_lock_key[ORPHAN_DIR_SYSTEM_INODE]とocfs2_file_ip_alloc_sem_key間でABBAロック順序の違反が発生していました。ロックチェーン#0 (orphanディレクトリinode_lock - ip_alloc_sem)では、ocfs2_unlinkがocfs2_prepare_orphan_dir、ocfs2_lookup_lock_orphan_dirを経てinode_lock(orphan_dir_inode)でロックAを取得し、その後、__ocfs2_prepare_orphan_dir、ocfs2_prepare_dir_for_insert、ocfs2_extend_dir、ocfs2_expand_inline_dirを経てdown_write(&oi-ip_alloc_sem)でロックBを取得します。ロックチェーン#1 (ip_alloc_sem - orphanディレクトリinode_lock)では、ocfs2_dio_end_io_writeがdown_write(&oi-ip_alloc_sem)でロックBを取得し、その後ocfs2_del_inode_from_orphan()でinode_lock(orphan_dir_inode)のロックAを取得します。デッドロックシナリオは、CPU0のunlinkがinode_lock(orphan_dir_inode)を取得し、CPU1のdio_end_io_writeがdown_write(ip_alloc_sem)を取得する一方で、逆方向にロックを待つ状態です。ip_alloc_semは割り当て変更を保護するためのものであり、ocfs2_del_inode_from_orphanの操作とは無関係でした。したがって、デッドロックを修正するためにocfs2_del_inode_from_orphanの処理をip_alloc_semの外に移動しました。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/04/24 |
| 登録日 | 2026/05/01 |
| 最終更新日 | 2026/05/01 |



