| Title | LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました:rust_binderにおいてprocロックを保持せずにset_notification_done()が呼び出されていなかった問題です。デスリスナーでのイベントの流れは次の通りです。1. リモートプロセスが終了し、BR_DEAD_BINDERメッセージを送信します。2. ローカルプロセスがBC_CLEAR_DEATH_NOTIFICATIONコマンドを呼び出します。3. ローカルプロセスがBC_DEAD_BINDER_DONEを呼び出します。この後、カーネルはpush_work_if_looper()を使ってBC_DEAD_BINDER_DONEコマンドにBR_CLEAR_DEATH_NOTIFICATION_DONEの返信を行います。しかし、現在のスレッドがlooperでない場合、デッドロックが発生する可能性があります。なぜなら、dead_binder_done()はset_notification_done()の間にprocロックを保持しており、そのset_notification_done()でpush_work_if_looper()が呼ばれるためです。通常、push_work_if_looper()はスレッドロックを取得し、procロック下で取得するのは問題ありません。しかし、現在のスレッドがlooperでない場合は、返信をプロセスのワークキューに配送するためにprocロックを再度取得しようとするため、procロックが既に保持されていることでデッドロックが発生します。この問題はset_notification_done()の実行時にprocロックを解放することで修正されました。もともとこの関数内でprocロックを保持する意図はありませんでした。AndroidではBC_DEAD_BINDER_DONEはBR_DEAD_BINDERメッセージに対する応答としてのみ呼び出され、カーネルは常にBR_DEAD_BINDERをlooperに配送するため、この状況は発生しないと考えられています。つまり、Androidユーザースペースが非looperスレッドでBC_DEAD_BINDER_DONEを呼び出すシナリオは存在しません。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | March 29, 2026, midnight |
| Registration Date | April 27, 2026, 10:53 a.m. |
| Last Update | April 27, 2026, 10:53 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.18 |
| Linux Kernel 6.18.1 以上 6.18.19 未満 |
| Linux Kernel 6.19 以上 6.19.9 未満 |
| Linux Kernel 7.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年04月27日] 掲載 |
April 27, 2026, 10:53 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: rust_binder: call set_notification_done() without proc lock Consider the following sequence of events on a death listener: However, this can result in a deadlock if the current thread is not a Fix this by releasing the proc lock during set_notification_done(). It I don't think this ever happens in Android because BC_DEAD_BINDER_DONE |
|---|---|
| Summary | En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: rust_binder: llamar a set_notification_done() sin el bloqueo de proc Considere la siguiente secuencia de eventos en un oyente de muerte: Sin embargo, esto puede resultar en un interbloqueo si el hilo actual no es un Solucione esto liberando el bloqueo de proc durante set_notification_done(). No No creo que esto ocurra nunca en Android porque BC_DEAD_BINDER_DONE |
| Publication Date | March 29, 2026, 10:16 p.m. |
| Registration Date | April 27, 2026, 12:21 p.m. |
| Last Update | April 25, 2026, 12:17 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.18.1 | 6.18.19 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.9 | |||
| cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | |||||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* | |||||