CVE-2026-64346 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
usb: gadget: udc: gadget_match_driverにおけるUse-After-Freeの修正
udc構造体はgadgetの管理構造体として機能しますが、そのライフサイクルは分離されています。Race Conditionが存在し、`usb_del_gadget()`がモード切替ワークなどを通じてudcメモリを解放している間に、`gadget_match_driver()`がconfigfsなどを介して並行して解放されたudcメモリにアクセスします。これによりUse-After-Free (UAF) が発生し、解放されたメモリがゼロクリアされる際にNULLポインタのデリファレンスをトリガーします:
[39430.908615][ T1171] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
[39430.911397][ T1171] pc : __pi_strcmp+0x20/0x140
[39430.911441][ T1171] lr : gadget_match_driver+0x34/0x60
... [39430.911890][ T1171] usb_gadget_register_driver_owner+0x50/0xf8
[39430.911910][ T1171] gadget_dev_desc_UDC_store+0xf4/0x140
[39430.931308][ T1171] configfs_write_iter+0xec/0x134
[39430.957058][ T1171] Workqueue: events_freezable __dwc3_set_mode
[39430.957287][ T1171] dwc3_gadget_exit+0x34/0x8c
[39430.957304][ T1171] __dwc3_set_mode+0xc0/0x664
gadgetが解放されるまでudc構造体が割り当てられたままになることを保証することで、これを修正します。これを実現するために、コアに新しい`usb_gadget_release()`ルーチンを導入します。gadgetが追加されると、`usb_add_gadget()`はgadgetのリリースルーチンをudc構造体に保存し、udcへの参照を取得します。gadgetが解放されると、`usb_gadget_release()`はudcへの参照を解除し、その後でgadgetのリリースルーチンを呼び出します。
If you want to get best quality of vulnerability data, you may have to visit VulDB.