JVNDB-2026-023801 | |
LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。fs/fcntlにおけるfasyncシグナリング関連のSOFTIRQ非安全なロック順序の問題です。プロセスグループがシグナルを受け取る際、send_sigio()およびsend_sigurg()で、SOFTIRQ安全からSOFTIRQ非安全なロック順序によりデッドロックが発生する可能性があります。プロセスグループ(PIDTYPE_PGID)に対してFASYNCが設定されている場合、両関数はtasklist_lockに対してread_lock(&tasklist_lock)を使用しタスクリストを巡回します。しかし、これらの関数はしばしばsoftirqコンテキストから呼び出されます。具体的には、send_sigio()はinput_inject_eventからkill_fasyncを経由し、send_sigurg()はtcp_check_urgからsk_send_sigurg (NET_RX_SOFTIRQ)を経由します。デッドロックはrwlockの書き込み者フェアネス機構によって引き起こされます。具体的な状況は以下の通りです。1. CPU0(プロセスコンテキスト)がdo_wait()内でread_lock(&tasklist_lock)を保持する。2. CPU1(プロセスコンテキスト)がfork()またはexit()においてwrite_lock(&tasklist_lock)の獲得を試みてスピンし、新しいリーダーの取得を阻害する。3. CPU0がsoftirq(例:TCP URGパケット受信)により割り込みを受ける。4. softirqがsend_sigurg()を呼び出しread_lock(&tasklist_lock)を取得しようとするが、CPU1が待機中のためデッドロックが発生する。PIDのハッシュ化やdo_each_pid_task()の走査はすでにRCU保護されているため、安全な走査にはtasklist_lockのread_lockは厳密には不要です。これを修正するため、tasklist_lockをrcu_read_lock()に置き換え、プロセスグループのシグナリング経路を単一PIDの経路に整合させました。この修正により、TCP URGパケットを介した潜在的なリモートサービス拒否攻撃ベクトルも軽減されました。Lockdepの検出情報は以下のとおりです。=====================================================WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected[...]Chain exists of: &dev->event_lock --> &f_owner->lock --> tasklist_lock可能な割り込み非安全なロックシナリオは次のようになります。 CPU0 CPU1 ---- ---- lock(tasklist_lock); local_irq_disable(); lock(&dev->event_lock); lock(&f_owner->lock); <Interrupt> lock(&dev->event_lock);*** デッドロックが発生しました。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/24 |
| 登録日 | 2026/07/16 |
| 最終更新日 | 2026/07/16 |



