Chronomaly 解放:32ビットLinuxでroot権限を得る競合状態エクスプロイト

Linuxカーネル内で重大な脆弱性が発見されました。カーネルが誤って解放済みメモリとやり取りしてしまうまでの、ほんの一瞬の時間的な隙を突くだけで悪用できるものです。これはもはや机上の理論ではありません。CVE-2025-38352(CVSSスコア7.4)の動作する概念実証(PoC)エクスプロイトがGitHub上に公開され、この欠陥がローカル権限昇格に十分実用的であることが示されています。

具体的にCVE-2025-38352はPOSIX CPUタイマーの実装に存在し、handle_posix_cpu_timers()関数におけるuse-after-free(UAF)状態として現れます。この脆弱性は、CONFIG_POSIX_CPU_TIMERS_TASK_WORKフラグが無効になっている構成でのみ発生します。この設定は32ビットAndroidカーネルで一般的である一方、64ビットシステムでは通常、影響を受けない別の構成が用いられます。

問題の核心は、いわゆる「ゾンビタスク」でPOSIX CPUタイマーが期限切れになった際に引き起こされる競合状態です。ゾンビプロセスの生成、親プロセスによる回収、そしてタイマーの削除を精密に同期させることで、カーネルがすでに解放されたメモリにアクセスしてしまう可能性があります。最悪の場合、権限昇格や、カーネル権限での任意コード実行への道が開かれます。

Chronomalyと名付けられたこのエクスプロイトは、サイバーセキュリティ企業ZellicのFaithとして知られる研究者によって公開されました。コードには、この欠陥の発見、分析、実用的な悪用方法を詳述した全3部構成の包括的な技術解説も付属しています。特筆すべき点として、Chronomalyはカーネルシンボルのオフセットや固定メモリアドレスの事前知識を必要とせず、さまざまなビルドに対して非常に移植性が高いものとなっています。

必要な競合の時間窓を確実に捉えるため、このエクスプロイトには少なくとも2CPUを備えたマルチコアプロセッサが必要です。テストはLinuxカーネル5.10.157を用いたQEMU上で実施されましたが、パラメータは多様な環境に合わせて調整可能です。手法としては、CPUタイマー操作によって競合の時間窓を拡大し、ヒープグルーミング戦略を用いてオブジェクトの割り当てに影響を与えます。特にsigqueue構造体が対象となります。

重要な点として、この脆弱性は実際に悪用されている欠陥のカタログに組み込まれており、現実の侵害で使用されている可能性を示唆しています。主なリスクは32ビットAndroidデバイスに結び付いているものの、影響を受けるコンポーネントは他の32ビットLinuxベースのシステムにも残っているため、レガシーなモバイル問題として片付けるべきではありません。

対処は標準的ですが、極めて緊急です。修正済みカーネルへ移行するか、可能であればCONFIG_POSIX_CPU_TIMERS_TASK_WORKフラグを有効化してください。コミットf90fff1e152dedf52b932240ebbd670d83330ecaとして実装された修正は、ゾンビタスク上でのタイマー処理を実質的に禁止します。Chronomalyが大規模悪用のための普遍的な道具へと進化する前に、デバイスメーカーおよびシステム管理者はこれらの更新を最優先で適用することが強く求められます。

翻訳元: https://meterpreter.org/chronomaly-unleashed-the-race-condition-exploit-giving-root-to-32-bit-linux/

ソース: meterpreter.org