CVE-2026-74500 in Linux情報

要約

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

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

ALSA: usb-audio: RME Digifaceステータスにおけるスタック情報漏洩の修正

snd_rme_digiface_read_status()関数は、デバイスから4ワード(32ビット)のステータスブロックを読み取り、初期化されていないオンスタック変数__le32 buf[4]に格納します。その後、ベンダー制御-IN転送が負のエラーを返さない場合、すべての4ワードを呼び出し元のstatus[]配列へコピーします。

snd_usb_ctl_msg()関数は、データステージで実際に受信されたバイト数がいくつであっても、要求された全サイズ分を呼び出し元のバッファにコピーします:

buf = kmemdup(data, size, GFP_KERNEL); err = usb_control_msg(dev, pipe, request, requesttype, value, index, buf, size, timeout); memcpy(data, buf, size);

usb_control_msg()関数は、短い制御-IN転送の場合に転送された長さを返します(これは負でない値です)。また、その長さ分だけのバイトしか書き込みません。コピーバックの残りの部分は呼び出し元のバッファをkmemdupしたイメージであるため、データステージが短く終了するデバイスからの応答により、buf[]の後続ワードには未初期化のカーネルスタックの内容が残ったままになります。呼び出し元での唯一のガード条件はerr < 0のみであるため、これらのワードはstatus[]配列に格納されてしまいます。

その後、これらはユーザー空間へ到達します:snd_rme_digiface_get_status_val()関数は、制御レジスタとマスクに基づいてstatus[]から16ビットハーフワードを選択し、8つのDigifaceステータスコントロールを組み合わせることで、/dev/snd/controlC*の権限のない読み取り者に対して全体で16バイトのフレームが露出します。

バッファをゼロ初期化することで、短い読込み時にスタック残留データではなく0が返されるようにしました。これは、同じ種類のベンダー読込みの前に出力ワードをすでにクリアしているsnd_rme_get_status1()関数の実装に倣ったものです。

発見者:XBOW トリアージ担当者:Baul Lee <[email protected]>

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

責任者

Linux

予約する

2026年08月15日

モデレーション

承諾済み

エントリ

VDB-390801

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you know our Splunk app?

Download it now for free!