| Title | LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性 |
|---|---|
| Summary | Linuxカーネルにおいて、以下の脆弱性が修正されました。usb: gadget: uvcのunbindレース時に発生するNULLポインタ参照についての修正です。コミットb81ac4395bbe("usb: gadget: uvc: allow for application to cleanly shutdown")により、カーネルパニックを防止するためにuvc_function_unbind()で合計1500msの2段階同期待機が導入されました。しかし、このタイミングベースの方法は電源管理(PM)遷移時には不十分です。PMサブシステムがユーザースペースプロセスをフリーズし始めると、wait_event_interruptible_timeout()が早期に中断され、unbindスレッドが進行してgadgetポインタ(cdev-gadget = NULL)をNULL化します。PMサブシステムの再開や中断時にタスクが再開されると、V4L2のリリース経路が既にNULL化されたgadgetポインタにアクセスしようとしてカーネルパニックを引き起こします。このレースコンディションとNULLポインタ参照に対処するために、まず1. 状態同期としてフラグとミューテックスを用い、struct uvc_deviceに'func_unbound'フラグを導入しました。これにより、uvc_function_disconnect()はNULL化されたcdev-gadgetポインタへのアクセスを安全にスキップできます。Alan Sternの提案に従い、このフラグは新しいミューテックス(uvc-lock)で保護され、適切なメモリ順序と命令の再配置および投機的読み込みを防止します。このミューテックスは一貫した状態管理のために'func_connected'の保護にも使用されます。次に2. 明示的同期として、uvc_function_unbind()とuvc_vdev_release()コールバックの同期にcompletionを使用し、すべてのビデオデバイスリソースを解放した後にstruct uvc_deviceが解放されることを保証してUse-After-Free(UAF)を防止します。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 1, 2026, midnight |
| Registration Date | May 11, 2026, 11 a.m. |
| Last Update | May 11, 2026, 11 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 5.10.117 以上 5.10.253 未満 |
| Linux Kernel 5.15.41 以上 5.15.203 未満 |
| Linux Kernel 5.18 以上 6.1.168 未満 |
| Linux Kernel 6.13 以上 6.18.22 未満 |
| Linux Kernel 6.19 以上 6.19.12 未満 |
| Linux Kernel 6.2 以上 6.6.134 未満 |
| Linux Kernel 6.7 以上 6.12.81 未満 |
| Linux Kernel 7.0 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月11日] 掲載 |
May 11, 2026, 11 a.m. |
| Summary | In the Linux kernel, the following vulnerability has been resolved: usb: gadget: uvc: fix NULL pointer dereference during unbind race Commit b81ac4395bbe ("usb: gadget: uvc: allow for application to cleanly When the PM subsystem starts freezing user space processes, the [ 814.123447][ T947] configfs-gadget.g1 gadget.0: uvc: uvc_function_unbind() When the PM subsystem resumes or aborts the suspend and tasks are [ 814.292597][ C0] PM: pm_system_irq_wakeup: 479 triggered dhdpcie_host_wake Address the race condition and NULL pointer dereference by: 1. State Synchronization (flag + mutex) 2. Explicit Synchronization (completion) |
|---|---|
| Publication Date | May 2, 2026, 12:16 a.m. |
| Registration Date | May 2, 2026, 4:07 a.m. |
| Last Update | May 8, 2026, 1:26 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.10.117 | 5.10.253 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.41 | 5.15.203 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.18 | 6.1.168 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 | 6.6.134 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 | 6.12.81 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 | 6.18.22 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.12 | |||
| 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:*:*:*:*:*:* | |||||