USB Gadgetでは、カーネルサブシステムが LinuxUSB Gadget API に脆弱性 (CVE-2021-39685) が確認されました。USB Gadget API は、クライアント USB デバイスの作成および USB デバイスのシミュレーションを行うためのソフトウェア インターフェイスを提供します。この脆弱性により、カーネルレベルでカーネル情報の漏洩、クラッシュ、または任意のコード実行が発生する可能性があります。この攻撃は、権限のないローカルユーザーが、rndis、hid、uac1、uac1_legacy、uac2 など、USB Gadget API を使用して実装されたさまざまなデバイス クラスを操作することによって実行されます。
この問題は、最近公開されたカーネルアップデートで修正されました。 Linux 5.15.8、5.10.85、5.4.165、4.19.221、4.14.258、4.9.293、4.4.295。この問題はディストリビューションで修正されていません(Debian, UbuntuRHEL、SUSE、Fedora、Archなど)。脆弱性を実証するためのプロトタイプエクスプロイトが作成されています。
この問題は、ガジェット ドライバー rndis、hid、uac1、uac1_legacy、および uac2 のデータ転送要求ハンドラーでのバッファ オーバーフローが原因で発生します。この脆弱性を悪用した結果、特権のない攻撃者は、常に 4096 バイトが割り当てられる静的バッファ (USB_COMP_EP0_BUFSIZ) のサイズを超える wLength フィールド値を持つ特別な制御リクエストを送信することにより、カーネル メモリにアクセスできるようになります。攻撃中、ユーザー空間の特権のないプロセスは、カーネル メモリに対して最大 65 KB のデータを読み書きする可能性があります。
出所: オープンネット.ru
