このウェブページスクリーンショットから、脆弱性に関する以下の主要な情報を取得できます。 1. 脆弱性の説明: - 関数: と 。 - 問題点:これらの関数は uprobes を使用する際にセキュリティ上の問題を抱えており、それらがプレーンな C 言語によるメモリアクセスを使用しているため、ユーザー空間メモリへのアクセスが不安全です。 2. 問題の詳細な説明: - 問題1:プレーンな C によるアクセスには対応するページテーブルエントリがないため、フォールト発生時、カーネルはこれをユーザー空間メモリに対する意図しないアクセスと見なし、カーネルスレッドのクラッシュを引き起こします。 - 問題2:プレーンな C によるアクセスはハードウェアおよびソフトウェアのページテーブルの影響を受けるため、uprobe 使用時にユーザー空間メモリへのアクセスをシミュレートすることができません。 - 問題3:プレーンな C によるアクセスは特権命令であり、限られた範囲のカーネル仮想アドレスしかアクセスできません。一方、シミュレートされた命令は TTBR0 のアドレス範囲内になければならず、これにより TTBR1 のアドレス範囲の最後尾 1MiB でエラーが発生する可能性があります。 3. 解決策: - uprobe の不使用:LDR (literal) および LDRSW (literal) 命令のシミュレーションに uprobes を使用しない。 - 使用の制限: および の使用を制限する。 - 将来の検討:将来的に uprobes サポートを導入することを検討するが、これにはさらなる作業が必要です。 4. 修正および関連リンク: - 修正:9842ceae9fa8 ("arm64: Add uprobe support")。 - 関連リンク:https://lore.kernel.org/r/20241008155851.801546-2-mark.rutland@arm.com 5. コード差分: - ファイル: 。 - 差分:LDR (literal) および LDRSW (literal) 命令に対するシミュレーションサポートの削除。 これらの情報から、この脆弱性は Linux カーネルの uprobes 機能、特に LDR (literal) および LDRSW (literal) 命令のシミュレーションに関するセキュリティ問題に関連していることがわかります。修正措置には、これらのシミュレーション命令の使用を制限すること、および将来的に uprobes サポートを導入することを検討することが含まれます。