| Title | LinuxのLinux Kernelにおける不特定の脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました:eventfsにおけるremount時にイベントを移動する際、eventfs_mutexとSRCUを適切に保持しなかった問題です。コミット340f0c7067a9("eventfs: Update all the eventfs_inodes from the events descriptor")では、eventfs_set_attrs()がremount時にei-childrenを再帰的にたどっていました。この処理はtracefs_apply_options()がtracefs_inodes上でrcu_read_lock()のみを保持して取得しており、不適切でした。具体的には、ei-childrenに対するlist_for_each_entryがeventfs_remove_rec()内のlist_del_rcu()と競合し、LIST_POISON1の参照違反を引き起こしていました(d2603279c7d6と同様の形態です)。さらに、eventfs_inodesはcall_srcu(&eventfs_srcu, ...)を介して解放されるため、rcu_read_lock()はSRCUの猶予期間を延長せず、走査中にti-privateが解放される可能性がありました。また、ei-attrへの書き込みはeventfs_mutexを保持するeventfs_set_attr()と競合していました。再現手順としては、無限ループでmount -o remount,uid=$((RANDOM%1000)) /sys/kernel/tracingを実行しつつ、別の無限ループでkprobe_eventsに対してイベント登録と解除を繰り返します。tracefs_apply_options()のevents部分はeventfs_mutexとsrcu_read_lock(&eventfs_srcu)を取得するeventfs_remount_lock()/_unlock()でラップされました。eventfs_set_attrs()はスリープしないため、ネストされたrcu_read_lock()の使用は問題なく、lockdep_assert_held()によって契約が担保されています。tracefs_drop_inode()のコメントには「RCUサイクル」と記されていましたが、実際にはSRCUが使用されていました。 |
| Possible impacts | ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 28, 2026, midnight |
| Registration Date | June 26, 2026, 11:58 a.m. |
| Last Update | June 26, 2026, 11:58 a.m. |
| CVSS3.0 : 警告 | |
| Score | 5.5 |
|---|---|
| Vector | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 6.13 以上 6.18.30 未満 |
| Linux Kernel 6.19 以上 7.0.7 未満 |
| Linux Kernel 6.6.35 以上 6.6.140 未満 |
| Linux Kernel 6.9.6 以上 6.12.88 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年06月26日] 掲載 |
June 26, 2026, 11:58 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: eventfs: Hold eventfs_mutex and SRCU when remount walks events Commit 340f0c7067a9 ("eventfs: Update all the eventfs_inodes from the - list_for_each_entry over ei->children races with the list_del_rcu() Reproducer: while :; do mount -o remount,uid=$((RANDOM%1000)) /sys/kernel/tracing; done & Wrap the events portion of tracefs_apply_options() in Comment in tracefs_drop_inode() said "RCU cycle" -- it is SRCU. |
|---|---|
| Publication Date | May 28, 2026, 7:16 p.m. |
| Registration Date | May 29, 2026, 4:12 a.m. |
| Last Update | May 28, 2026, 10:44 p.m. |