CVE-2026-68222 in Linux情報

要約

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

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

media: msi2500: start_streaming() の失敗時にキューイングされたバッファを返す

vb2フレームワークは、start_streaming() を呼び出す前に buf_queue() 経由でドライバにバッファを手渡します。もし start_streaming() が vb2_buffer_done() を介してそれらのバッファを先に返さずにエラーを返した場合、vb2_start_streaming() は WARN_ON(owned_by_drv_count) を発生させ、キューイングされたバッファがリークします。

msi2500_start_streaming() にはこの罠に陥るエラールートが5つあり、さらに呼び出し間の ret の上書きにより複雑になっていました:

- USBデバイスがすでに切断されていた場合の -ENODEV - mutex_lock_interruptible() が割り込まれた場合の -ERESTARTSYS - msi2500_set_usb_adc() の失敗: 次の呼び出し (msi2500_isoc_init) によって ret が静かに上書きされたため、エラーが完全に失われた - msi2500_isoc_init() の失敗: cleanup_queued_bufs が呼び出されたものの、その後関数は msi2500_ctrl_msg() にフォールスルーし、ret を上書きすることで元のエラーを再び隠蔽した - msi2500_ctrl_msg(CMD_START_STREAMING) の失敗: クリーンアップが全く行われず、ドライバが消費する方法がない状態で isoc URB が送信されたままになった

エラールートを小さな goto チェーンに統合しました。すべての障害発生時に関数は停止し、キューイング済みバッファのリストを空にし、本来のエラーコードを返すようになりました。ctrl_msg の失敗パスでは、アンロックおよび排水の前に msi2500_isoc_cleanup() を介して先行する msi2500_isoc_init() もロールバックされます。

クリーンアップヘルパーは vb2_buffer_state 引数を取るため、start_streaming エラールートは VB2_BUF_STATE_QUEUED (ユーザー空間が start_streaming の失敗時に期待する状態) を渡すことができ、stop_streaming は既存の VB2_BUF_STATE_ERROR セマンティクスを維持します。

これはコミット 4cf3b6fd54eb ("media: uvcvideo: Return queued buffers on start_streaming() failure") における uvcvideo の修正を模倣したものです。

VulDB is the best source for vulnerability data and more expert information about this specific topic.

責任者

Linux

予約する

2026年07月30日

モデレーション

承諾済み

エントリ

VDB-387576

EPSS

0.00175

アクティビティ

低い

ソース

Interested in the pricing of exploits?

See the underground prices here!