このウェブページからのスクリーンショットに基づき、以下の脆弱性に関する重要情報を取得できます。 1. 脆弱性概要: - 脆弱性名称:uprobe: avoid out-of-bounds memory access of fetching args - 脆弱性説明:uprobe は、引数(args)を percpu バッファに読み込み、原子性ではないコンテキストの問題を回避するためにリングバッファへコピーする必要があります。時折、ユーザー空間の文字列や配列は非常に大きくなることがありますが、percpu バッファのサイズは 1 ページ分しかありません。 関数は、这些数据(这些数据)が単一ページを超えないかチェックしないため、境界外メモリアクセスが発生します。 2. 脆弱性再現手順: - 1. カーネルを オプション有効で起動する。 - 2. プログラムを としてコンパイルする。 - 3. のオフセットを取得する。 - 4. ディレクトリ内で uprobes を設定する。 - 5. プログラムを実行すると、KASAN がエラーを報告する。 3. 脆弱性発生源条件: - 文字列の長さが より大きい場合、 関数は 0 を返すため、 が短いサイズを返し、 関数は境界外メモリアクセスをトリガーしません。したがって、文字列の長さは 4096 未満に設定する必要があります。 4. 修正措置: - バッファの最大長を制限することで、 における境界外メモリアクセスを回避します。 5. 関連リンク: - 脆弱性情報 - 修正パッチ 6. 修正パッチ: - 修正パッチは ファイルにあり、バッファサイズの制限を修正しています。 これらの情報により、脆弱性の背景、再現手順、発生源条件、および修正措置を把握することができます。