CVE-2026-74641 in Linux情報

要約

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

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

ALSA: usx2y: hwdep mmapのフォールトオフセットに境界を設定した

snd_us428ctls_vm_fault()は、フォールト発生時のページオフセットを何ら制限なくカーネルアドレスに変換しています。

```c offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char *)(...)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); get_page(page); vmf->page = page;

return 0; ```

snd_us428ctls_mmap()はマッピングの長さのみをチェックし、オフセットは一切チェックしません。また、us428ctls_sharedmemはalloc_pages_exact()による単一ページです。文字デバイスファイルに対してfile_mmap_size_max()がULONG_MAXを返すため、mmレイヤーも上限を設定していません。ゼロより大きいすべてのページオフセットは、オブジェクト外のstruct pageに解決され、ハンドラはそのページを読み書き可能な状態で呼び出し元のアドレス空間にインストールします(vmaは読み取り専用としてマークされていません)。

呼び出し元は単一のmmap()引数でページフレームを選択し、所有していないカーネルメモリの1ページに対する読み書きアクセスを取得できます。オフセットが未割り当てのvmemmap領域に該当すると、代わりにoopsが発生します。

接続されたUS-X2Yのhwdepノードを開くことができるプロセスは、同じノードを介してFPGAイメージを読み込んだ後にこの状態に達しますが、権限チェックは一切行われません。

7.2.0-rc5 (arm64)において、大きなオフセットでのmmap()実行時:

``` Unable to handle kernel paging request at virtual address fffffdffc45d5ac8 pc : snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y]
Call trace: snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y]
__do_fault __handle_mm_fault handle_mm_fault el0_da ```

共有リージョン外のオフセットはすべて拒否します。usx2yhwdeppcm.cにあるpcm hwdepハンドラも同様の方法でアドレスを計算しており、同じ境界設定が必要です。

XBOWによって発見され、Baul Leeによって分類されました

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

責任者

Linux

予約する

2026年08月15日

モデレーション

承諾済み

エントリ

VDB-394412

EPSS

0.00000

アクティビティ

低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!