| タイトル | LinuxのLinux Kernelにおける不特定の脆弱性 |
|---|---|
| 概要 | 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が使用されていました。 |
| 想定される影響 | ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| 対策 | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年5月28日0:00 |
| 登録日 | 2026年6月26日11:58 |
| 最終更新日 | 2026年6月26日11:58 |
| CVSS3.0 : 警告 | |
| スコア | 5.5 |
|---|---|
| ベクター | 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 | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年06月26日] 掲載 |
2026年6月26日11:58 |
| 概要 | 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. |
|---|---|
| 公表日 | 2026年5月28日19:16 |
| 登録日 | 2026年5月29日4:12 |
| 最終更新日 | 2026年5月28日22:44 |