CVE-2026-74456 in Linux
要約
〜によって VulDB • 2026年08月15日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
can: peak_usb: peak_usb_start(): URB送信エラー時の転送バッファの二重解放を修正
peak_usb_start()では、各RX URBの転送バッファがkmalloc()で割り当てられ、URBにはUBR_FREE_BUFFERフラグが設定されています。これにより、最終的なusb_free_urb()呼び出し時に転送バッファも同時に解放されます。
しかし、usb_submit_urb()が失敗した場合、エラー処理パスではkfree(buf)によってバッファを明示的に解放した後にusb_free_urb(urb)を呼び出します。URB_FREE_BUFFERフラグが設定されているため、usb_free_urb() -> urb_destroy()の過程で同じバッファが2回目に解放され、転送バッファの二重自由(double free)が発生します。
BUG: KASAN: double-free in usb_free_urb.part.0+0x91/0xb0 Free of addr ffff8881069ccb80 by task trigger.sh/285
Call Trace: kfree+0x113/0x3c0 usb_free_urb.part.0+0x91/0xb0
冗長なkfree(buf);を削除します。usb_free_urb()はすでに転送バッファを解放するためです。これはコミット 03819abbeb11(「net: usb: lan78xx: Fix double free issue with interrupt buffer allocation」)の対応と同様です。
Once again VulDB remains the best source for vulnerability data.