| Title | LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性 |
|---|---|
| Summary | 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の外に移動しました。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | April 24, 2026, midnight |
| Registration Date | May 1, 2026, 10:48 a.m. |
| Last Update | May 1, 2026, 10:48 a.m. |
| CVSS3.0 : 重要 | |
| Score | 7.5 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 4.6 以上 6.6.136 未満 |
| Linux Kernel 6.13 以上 6.18.24 未満 |
| Linux Kernel 6.19 以上 6.19.14 未満 |
| Linux Kernel 6.7 以上 6.12.83 未満 |
| Linux Kernel 7.0 以上 7.0.1 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月01日] 掲載 |
May 1, 2026, 10:48 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix possible deadlock between unlink and dio_end_io_write ocfs2_unlink takes orphan dir inode_lock first and then ip_alloc_sem, Lock Chain #0 (orphan dir inode_lock -> ip_alloc_sem): Lock Chain #1 (ip_alloc_sem -> orphan dir inode_lock): Deadlock Scenario: Since ip_alloc_sem is to protect allocation changes, which is unrelated |
|---|---|
| Publication Date | April 25, 2026, 12:16 a.m. |
| Registration Date | April 25, 2026, 4:07 a.m. |
| Last Update | April 30, 2026, 5:10 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.6 | 6.6.136 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 | 6.12.83 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 | 6.18.24 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.14 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 7.0 | 7.0.1 | |||