このウェブページのスクリーンショットから、以下の脆弱性に関する重要情報が取得できます: 1. 脆弱性の説明: - 脆弱性名称:uprobe: avoid out-of-bounds memory access of fetching args - 脆弱性の説明:uprobe は、引数(args)を percpu バッファに読み込み、非原子コンテキストにおける問題を回避するためにそれをリングバッファにコピーする必要があります。ときに、ユーザー空間の文字列や配列は非常に大きくなることがありますが、percpu バッファのサイズはページサイズだけです。 関数は、これらのデータが単一ページを超えていないかどうかをチェックしないため、範囲外メモリアクセス(out-of-bounds memory access)を引き起こす可能性があります。 2. 脆弱性の発生源: - 手順: 1. を有効にしてカーネルをビルドする。 2. プログラムを として保存する。 3. プログラムをコンパイルする。 4. のオフセットを取得する。 5. uprobes を設定する。 6. プログラムを実行すると、Kasan がエラーを報告する。 3. 脆弱性の悪用: - エラーメッセージ:Kasan: use-after-free in strncpy_from_user+0x1d6/0x1f0 - エラーの説明:アドレス で 8 バイトの書き込み操作が発生した。 4. 修正策: - コード変更: でのメモリアクセスエラーを回避するため、バッファの最大長をページサイズに制限する。 - リンク:https://lore.kernel.org/all/20241015060148.1108331-1-mqaio@linux.alibaba.com/ 5. 修正パッチ: - パッチ内容:メモリアクセスエラーを回避するために、uprobes のバッファサイズ制限を変更した。 6. 修正の署名: - 署名:Qiao Ma と Masami Hiramatsu によって署名済み。 これらの情報は、脆弱性の発生源、悪用方法、および修正策を詳細に説明しており、脆弱性の性質と修正プロセスを理解するのに役立ちます。