時は2025年、セキュリティ・チームが境界線を固める一方で、Linuxカーネルのメーリングリストは新たな脅威で賑わっている。グーグルの脅威分析グループ(TAG)は、Linuxカーネルを武器化することを確認した。 CVE-2025-38352.
これはありふれたメモリ破壊のバグではない。洗練されたタイミング依存の レースコンディション LinuxカーネルのPOSIX CPUタイマー・サブシステムの奥深くに存在する。CVSSスコアは7.4で、一見すると対処可能なように見えるかもしれないが、スコアに惑わされてはいけない。営利目的のスパイウェア・ベンダーの手にかかれば、この脆弱性はすでに武器化され、信頼性の高い不正アクセスを実現している。 ローカル特権の昇格 (LPE) KASLRやPANのような最新の緩和策をバイパスして、完全にパッチが適用されたAndroidデバイス上で。
エリート・セキュリティ・エンジニアにとって、CVE-2025-38352は「Race-to-Use-After-Free」エクスプロイトの頂点に位置する。これは、プロセスが「ゾンビ」状態になり、カーネルがタイマーをクリーンアップするまでの微小なギャップを悪用するものだ。この記事では、高レベルの要約はやめて、以下の点を外科的に解剖する。 kernel/time/posix-cpu-timers.cそして、なぜAIによる時間分析が、人間の監査役が見逃したものを発見する唯一の方法なのか。
カーネルの致命的欠陥:壊れたスピンロック・ダンス
CVE-2025-38352を理解するためには、Linuxカーネルがプロセス終了時にどのように並行処理を行うかを見なければならない。この脆弱性は、あるスレッドが同時に CPU タイマーを削除しようとしている間に、カーネルが期限切れの CPU タイマーを処理する方法における原子性の違反に起因する。
脆弱なコードパス
欠陥は handle_posix_cpu_timers() 関数を呼び出す。この関数は、アクティブなタイマーのリストを反復処理し、期限切れのタイマーを発火させる。重要なのは、この繰り返し処理を行うためには シグロック.
しかし、パッチを当てる前のロジックには致命的なシーケンスが含まれていた:
- ロックの獲得 カーネルは
シグロックを使ってタイマーリストを走査する。 - ドロップ 特定の期限切れ能力を処理する(具体的には
cpuclock_perthread)、コードは簡単に 鍵を落とす を使用して、チェックまたは再キュー操作を実行する。 - 使用: ロックを再取得し、タイマーオブジェクトの再参照に進む。
レースウィンドウ
攻撃者が攻撃するのは、この微細な窓の内側、つまり鍵が落とされた部分である。
同時実行スレッド(スレッド B)が timer_delete() システムコールを発行する。ロックはフリーであるため、スレッドBはそのロックの取得に成功し、リストからタイマーを削除し、kfree_rcu または slab deallocation によってメモリを解放する。
スレッドA(被害者コンテキスト)がロックを再取得すると、そのスレッドは posix_cputimer 構造体は、技術的にはもはや存在しない。このメモリーへの書き込み(例えば、有効期限を更新する)を進め、その結果 ユーズアフターフリー(UAF) と書いている。

ゾンビを武器にするエクスプロイト・プリミティブ
カーネルのレースコンディションを悪用することは、しばしば宝くじに当たることに例えられる。しかし、高度なエクスプロイト開発者はサイコロを振るのではなく、ゲームを操作します。CVE-2025-38352の文脈では、攻撃者は次のものを使ってゲームを操作する。 ゾンビ・プロセス.
1.窓を広げる(「ゾンビ化」テクニック)
標準的なレースウィンドウの幅はわずか数ナノ秒かもしれない。エクスプロイトを確実にするために(成功率90%+)、攻撃者はプロセスの終了状態を利用する。
子プロセスを生成して終了させることで、しかし意図的に ない 刈り取り(経由 ウェイトピッド)に入る。 EXIT_ゾンビ 状態になる。この状態では、タスク構造はメモリ上に残っているが、クリーンアップ・ロジックは保留されている。攻撃者は、ゾンビ・プロセスでタイマー操作をトリガーすると、カーネルが以下のような、より遅く複雑なコード・パスに強制的に移行することを発見した。 posix_cpu_timer_del人為的にレースウィンドウをナノ秒からマイクロ秒に拡大しているのだ。
2.SLUB風水(ヒープスプレー)
UAFがトリガーされると、カーネルは解放されたメモリスロットにデータを書き込む。そのスロットが空の場合、カーネルはクラッシュする(DoS)。Rootを取得するには、攻撃者は解放されたタイマーオブジェクトをペイロードで置き換える必要があります。
攻撃者は SLUBアロケーターの 予測可能な行動(Last-In, First-Out)。
- 無料だ: を解放するレースを発動させる。
タイマー構造体 - スプレーだ: カーネル・ヒープを、まったく同じサイズのユーザー制御オブジェクトで即座に溢れさせる(たとえば
センドエムエスジー補助データまたはキー・シリアルオブジェクト)。 - 汚職だ: カーネルはタイマーを更新していると思い、攻撃者のオブジェクトに書き込む。もし攻撃者が関数ポインタを含む構造体(例えば
tty_structまたはファイル操作)、カーネルはそのポインターを上書きする。 - 実行する: 攻撃者がスプレーされたオブジェクトを呼び出すと(ファイルを閉じるなど)、カーネルは上書きされたアドレス→ROPチェーン→ルートにジャンプする。

Syzkallerを超えて:従来のファジングはなぜ失敗したのか
CVE-2025-38352は、GoogleのSyzkallerのような自動ファザーでは何年も検出されなかった。なぜか?
従来のカバレッジガイド型ファジングは 確率的.カーネルにランダムなシステムコールを投げつけてクラッシュさせようとする。
- それは理解できない タイミング.
- それは理解できない 状態依存性 (例えば、「スレッドBがタイマーを削除している間、スレッドAは終了していなければならない」)。
ブラインドファザーがこの特定のレースコンディションにヒットする統計的確率は、プロセスが正確に ゾンビ 州は天文学的に低い。
AIソリューション:ペンライジェントの時間分析
このような伝統的なツールの失敗は、以下の必要性を浮き彫りにしている。 AIによる論理分析.そこで ペンリジェント は "ファジング "から "推論 "へとパラダイムを変える。
Penligent社では、このような特殊な タイミングを意識したAIエージェント 並行性のバグ探しのために設計された:
1.同時実行パターン認識
Penligentのモデルはランダム入力の代わりに、カーネルソースのAST(抽象構文木)を分析します。危険なペア」-同じ共有リソースを変更するシスコール-を特定します、 posix_cputimer)が、異なるロック経路をたどる。フラグは タイマー削除 そして handle_posix_cpu_timers 高確率で衝突するターゲットとして。
2.AIによるレースウィンドウの拡張
Penligentは、単にシステムコールを実行するだけでなく、それらをオーケストレーションする。レースウィンドウを広げる必要性を認識し、AIは自動的に EXIT_ゾンビ 過去の "Ref-Count "脆弱性レポートを分析することによって、このテクニックを開発した。プログラムによってCPUを停止させる概念実証を生成した。 スケジュー・イールド または広範なメモリバリア)で衝突を保証する。
これは、セキュリティエンジニアにとって、Penligentが「潜在的なバグ」を報告するだけでなく、次のようなサービスを提供することを意味します。 検証済みの兵器化されたエクスプロイト そのコードの真のリスクプロファイルを示すものである。
修復とブルーチームによる検知
2025年後半にLinuxカーネルにマージされたこの修正には、単なるロックではなくロジックチェックが含まれている。
修正
run_posix_cpu_timers()において、カーネルが明示的に(tsk->exit_state)かどうかをチェックするようになった。もしタスクが既に死んでいるか瀕死の状態であれば、タイマーの処理を直ちに中止する。これにより、"Zombie "変数が効果的に取り除かれる。
検出戦略(EDR/Syslog):
ブルーチームは、Linux/Android サーバ上の以下の「侵害の兆候(IoC)」を探す必要があります:
- 高頻度のタイマーチャーン: 1秒間に何千ものPOSIXタイマーを高速に作成・削除するプロセス。
- ゾンビの洪水 異常な蓄積
Zすぐに生成され、刈り取られない状態のプロセス。 - カーネル・テイント:
dmesgのログに「一般的な保護フォルト」または「スラブの破損」が表示されます。kmalloc-192(または、アーチ上のタイマー用の特定のスラブサイズ)。
結論
CVE-2025-38352は、レガシーコードが地雷原であることを思い起こさせるお祭りのようなものだ。POSIXタイマーのコードは何十年も前に書かれたものだが、2025年の複雑なメモリー環境を武器にするために必要な潜在的な欠陥が含まれていた。
筋金入りのセキュリティ・エンジニアにとって、この教訓は明らかだ。脆弱性研究の未来は、単純なバッファ・オーバーフローを見つけることではないのだ。時間.カーネルが複雑なロック機構を採用している限り、レースコンディションは悪用の「王冠の宝石」であり続けるだろう。

