CVE-2025-39989 in Linux情報

要約

〜によって VulDB • 2026年06月25日

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

x86/mce: copy-from-user コンテキストを判断するために is_copy_from_user() を使用する

パッチシリーズ「mm/hwpoison: memory failure handlingにおける回帰(regressions)の修正」、v4。

## 1. 目的

このパッチセットは、5.10 LTSと比較してバージョン5.17以降のアップストリームカーネルで発生した、メモリ障害処理に関連する2つの重大な回帰を解決します。

- copyinケース: カーネルがユーザー空間からコピーしている間に、ユーザーページ内でポイズン(汚染)が見つかる - instrケース: ユーザー空間での命令フェッチ中にポイズンが見つかる

## 2. 期待される結果とその理由

- copyinケースの場合:

カーネルは、get_user() または copy_from_user() を実行している箇所でエラーリターンを受け取り、プロセスにクラッシュさせる代わりに -EFAULT を返す場合、その場所で発見されたポイズンから回復できます。より具体的には、MCE(マシンチェック例外)ハンドラは fixup ハンドラのタイプをチェックし、カーネル内部での #MC が回復可能かどうかを決定します。EX_TYPE_UACCESS が見つかった場合、PC は _ASM_EXTABLE_FAULT() で指定されたリカバリコードにジャンプし、ユーザー空間に対して -EFAULT を返します。

- instrケースの場合:

ユーザー空間での命令フェッチ中にポイズンが発見された場合、完全な回復が可能です。ユーザープロセスは #PF(ページフォルト)を受け取り、Linux は新しいページを割り当ててストレージからの読み込みで埋めます。


## 3. 実際に発生することとその理由

- copyinケースの場合:v5.17以降カーネルパニック

コミット 4c132d1d844a ("x86/futex: Remove .fixup usage") は新しい extable fixup タイプ EX_TYPE_EFAULT_REG を導入し、その後のパッチで copy-from-user 操作の extable fixup タイプが EX_TYPE_UACCESS から EX_TYPE_EFAULT_REG に変更されました。これにより、get_user() または copy_from_user() でポイズンが見つかった際の以前の EX_TYPE_UACCESS の処理が壊れました。

- instrケースの場合:#CMCI と #MCE の競合(race)によりユーザープロセスが SIGBUS シグナルで終了する

修正不可能なメモリエラーが消費される際、UCNA(Uncorrected, No Action required)署名を持つ修正不可能なエラーを報告するメモリーコントローラからの CMCI と、データが直ちに消費されようとしている際にコアから SRAR 署名付きの機械チェックを報告・処理するプロセスとの間に競合が発生します。

### バックグラウンド:Intelプラットフォームで *UN*corrected(修正不可能)エラーが *C*MCI に結びつく理由 [1]

Icelake以前のメモリーコントローラは、以前に見たことのないメモリ内の修正不可能なエラーを検出した場合、機械チェックバンク内で SRAO (Software Recoverable Action Optional) 署名付きのブロードキャストマシンチェックをシグナルとして送信することで、パトロールスクラブイベントを報告していました。これは過剰な対応でした。なぜなら、その不良データをコアが直ちに消費しよう

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

責任者

Linux

予約する

2025年04月16日

モデレーション

承諾済み

エントリ

VDB-305621

EPSS

0.00231

アクティビティ

非常低い

ソース

Interested in the pricing of exploits?

See the underground prices here!