このウェブページスナップショットから、脆弱性に関する以下の重要な情報を取得できます: 1. 脆弱性の説明: - 脆弱性の種類: 関数の使用時、メッセージ送信中に別のスレッドによって同じソケットが解放されると、 関数の使用時に二重解放エラー(double free)が発生する可能性があります。 - トリガー条件: - スレッド A が フラグを設定した skb を構築し、 を設定する。 - スレッド A が から skb の構築を継続している途中でブロックされる。 - スレッド B が同時に 関数を呼び出し、構築を完了して書き込みキューに投入する。 - スレッド A がエラーに遭遇し、スレッド B によって書き込みキューに投入済みの skb を最終的に解放する。 - 関数が skb を解放する際、スレッド B によって書き込みキューに投入済みの skb を解放してしまう可能性がある。 2. 脆弱性の影響: - この状況により、 関数の使用時に二重解放エラーが発生し、メモリリークやデータの破損を引き起こす可能性があります。 3. 修正対策: - 関数を修正し、per-socket mutex を追加することで、メッセージ送信中に別のスレッドによって同一ソケットが解放されるのを防ぐため、 関数の呼び出しを直列化(シリアライズ)しました。 4. パッチ内容: - ファイルに フィールドを追加しました。 - ファイルで 関数を修正し、 を保護するために および の呼び出しを追加しました。 5. パッチの適用: - このパッチは によって導入された問題を修正し、syzkaller ツールによって報告された UAF(Use-After-Free)エラーを解決しました。 6. パッチの適用範囲: - このパッチは Linux カーネルのバージョン に適用可能です。 これらの情報により、脆弱性のトリガー条件、影響、および修正対策が明確になり、脆弱性の性質と修正プロセスの理解に非常に役立ちます。