JVNDB-2026-022479 | |
LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました:xfrm: iptfs: iptfs_destroy_state() における ABBA デッドロックの修正iptfs_destroy_state() は、タイマーのコールバックも取得するスピンロックを保持したまま hrtimer_cancel() を呼び出しており、SMP システムにおいて ABBA デッドロックを引き起こします。出力タイマー(iptfs_timer)の場合: - iptfs_destroy_state() は x->lock を保持したまま hrtimer_cancel() を呼び出す - iptfs_delay_timer() コールバックは x->lock を取得するドロップタイマー(drop_timer)の場合: - iptfs_destroy_state() は drop_lock を保持したまま hrtimer_cancel() を呼び出す - iptfs_drop_timer() コールバックは drop_lock を取得する両方のタイマーは HRTIMER_MODE_REL_SOFT を使用しているため、コールバックは softirq コンテキストで実行されます。他の CPU 上で実行中のソフトタイマーに対して hrtimer_cancel() が呼ばれると、hrtimer_cancel_wait_running() は softirq_expiry_lock に対してスピンします。これは、コールバックを実行している softirq が保持しているのと同じロックです。もしコールバックが、hrtimer_cancel() の呼び出し側が保持しているスピンロックの解放待ちでブロックされると、以下のような循環依存が発生します: CPU 0: lock_A を保持 -> softirq_expiry_lock を待機 CPU 1: softirq_expiry_lock を保持 -> lock_A を待機それぞれのロックを取得する前に hrtimer_cancel() を呼び出すことで修正します。hrtimer_cancel() は、いかなるロックも保持せずに呼び出しても安全であり、進行中のコールバックが完了するまで待機します。出力タイマーについては、パケットキューを排出するため、その後にロックを取得します。ドロップタイマーについては、タイマーコールバックとの直列化のためだけに存在していた lock/unlock の組み合わせを完全に削除します。これは hrtimer_cancel() によってすでに保証されます。ソースコード監査により発見されました。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/25 |
| 登録日 | 2026/07/07 |
| 最終更新日 | 2026/07/07 |



