CVE-2026-68217 in Linux情報

要約

〜によって VulDB • 2026年08月10日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

media: pwc: start_streaming() 失敗時に fill_buf を空にする

pwc_isoc_init() はループ内で usb_submit_urb(.., GFP_KERNEL) を用いてアイソクロナス URB (Urb Request Block) を送信します。最初の URB が送信された後、その完了ハンドラである pwc_isoc_handler() がループ終了前に別の CPU で実行される可能性があります:

start_streaming() pcv_isoc_init() usb_submit_urb(urbs[0], GFP_KERNEL)
pwc_isoc_handler(urbs[0])
pdev->fill_buf = pwc_get_next_fill_buf(pdev) usb_submit_urb(urbs[i>0], ..) -> 失敗する
pvc_isoc_cleanup(pdev) /* URB を終了させる */ return ret; pvc_cleanup_queued_bufs(pdev, VB2_BUF_STATE_QUEUED)

pwc_get_next_fill_buf() は、pdev->queued_bufs からバッファをデタッチし、それを pdev->fill_buf に格納します。start_streaming() のエラーパスでは pdev->queued_bufs だけを空にしているため、pdev->fill_buf に保留されているバッファはリークされます。その後、vb2_start_streaming() が WARN_ON(owned_by_drv_count) をトリガーします。

stop_streaming() はコミット 80b0963e1698 ("[media] pwc: fix WARN_ON") 以来この処理に対応しており、これはテardown パスに fill_buf の空にする処理を追加したものですが、start_streaming() のエラーパスには追加されていません。失敗時に同様の対応を行い、start_streaming() がドライバが所有するバッファを持たずに戻るようにします。

本問題は https://sashiko.dev/ において INV-003 シリーズの自動レビューにより特定されました。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年07月30日

モデレーション

承諾済み

エントリ

VDB-387564

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you know our Splunk app?

Download it now for free!