AI Codexがサムスン製TVドライバの欠陥を悪用してルートアクセスを獲得

新しい実験により、AIコーディングアシスタント「Codex」が、サムスン製KantS2 Tizen ファームウェアの危険にさらされたカーネルドライバを悪用することで、サムスン製スマートTV上で独立して権限昇格できることが示されました。

既存のブラウザからの足がかりから出発した「Codex」は、ソースコード監査、物理メモリアクセス、認証情報の改ざんを組み合わせて、サンドボックス化されたブラウザプロセスをライブデバイス上のルートに変換しました。

別のコントローラホストが静的ARMv7バイナリをビルドし、HTTP経由で提供し、tmux経由でTV上の既に実行中のシェルにコマンドを挿入し、インタラクティブなターミナルではなくログから出力を回復しました。

サムスンの無許可実行防止がディスクからの未署名バイナリをブロックしているため、チームはメモリからのみバイナリを実行するためにmemfdベースのラッパーを使用しました。

Image

研究者はTV のブラウザアプリ内でコードを実行することから始めました。ユーザーID 5001として実行され、サムスンのTizen ベースのKantS2プラットフォーム上で4.1.10 Linuxカーネルを使用しています。

Codexには、デバイスノード、ロードされたモジュール、カーネルブートパラメータなどのライブシステム情報と共に、一致するKantS2ソースツリーが与えられ、「このブラウザシェルからルートへの」到達可能な権限昇格パスを見つけるという課題が与えられました。

ソース内にバグが存在し、実際のTVに存在し、権限なしのブラウザコンテキストから到達可能であることを確認する必要がありました。

世界中で書き込み可能なNovatekドライバ

Codexは、/devの下に公開され、KantS2ツリーのNovatek関連カーネルドライバによってサポートされている、世界中で書き込み可能な文字デバイスのntkhdma、ntksys、ntkxdmaのファミリーにすぐに焦点を当てました。

udevルールは、/dev/ntkxysにモード0666を明示的に付与し、システム上の任意のプロセスに強力なメモリ管理インターフェイスを公開しました。

ntksysドライバでは、ユーザー空間は物理基盤(u32Start)とサイズ(u32Size)を含む構造(ST_SYS_MEM_INFO)を制御し、要求された物理範囲の検証なしにioctl経由でグローバルテーブルに格納されます。

mmap中、ドライバはvm_pgoffからテーブルインデックスを使用し、攻撃者が制御した物理フレーム番号をvk_remap_pfn_rangeに直接渡し、実質的にphysmapプリミティブを作成します:権限チェックなしにユーザー空間に物理メモリを任意にマップします。

付随するドライバであるntkhdmaは、ioctl経由でDMAバッファの信頼できる物理アドレスをリークすることで、Codexがブラウザシェルから実際の物理ページをマップして変更できることを証明するための安全なターゲットを与えることでさらに役立ちました。

TV上で/proc/iomemがブロックされているため、CodexはLinuxカーネルコマンドを解析することに転換しました。/proc/cmdlineからのラインを使用して、「mem=400M@32M mem=256M@512M mem=192M@2048M」などのパラメータからRAMウィンドウを再構築します。

DMAバッファアドレスの/dev/ntkhdmaをクエリするためのヘルパーを作成し、次にntksys経由でそのアドレスを登録し、mmap経由でユーザー空間にマップしてデバイスのDMAメモリを正常に読み書きする2番目のヘルパーを作成しました。

そこから、Codexはデータのみの権限昇格にシフトしました:復元されたRAM範囲をスキャンしてブラウザプロセスのcred構造を探し、uid=5001およびgid=100パターンで識別し、それらのフィールドをゼロに上書きしてrootになりすました。

ターゲットのcredオブジェクトがパッチされると、Codexはブラウザコンテキストから/bin/shを起動し、オーディオ、ビデオ、および特権ストレージロールを含むルートグループメンバーシップを使用してuid=0として実行されていることを確認しました。

ループ内の人間によるAI悪用

セッション全体を通じて、人間のオペレータは、Codexがネットワークロールを誤解したり、TVをフリーズしたり、非現実的な戦略を試みたりしたときにCodexをリダイレクトする必要があり、効果的なAI駆動の悪用がワンショットプロンプトではなくインタラクティブなガイダンスから引き続き利益を得ることを強調しています。

ただし、動作ループが確立された後(ログとソースを検査し、ヘルパーをビルドし、memfd経由でデプロイし、検証してから反復)、Codexはカーネル認証情報を対象とするよう指示されることなく、ntkドライバファミリーを独立して選択し、physmapプリミティブを証明し、cred上書きパスを発見しました。

このケースは、重大な設計上の欠陥を浮き彫りにしています:コンシューマデバイス上でntkxysのような強力なメモリ管理ドライバを世界中で書き込み可能なインターフェイスとして公開することは、悪用後の権限昇格のハードルを劇的に低下させます。

また、AIツールが既存の足がかりから悪用開発を加速させる方法を示し、スマートTVおよびIoTプラットフォームでのドライバの強化、厳密なデバイスノード権限、および公開されたカーネル攻撃表面の最小化に関する防御的な緊急性を高めます。

翻訳元: https://gbhackers.com/codex-exploits-samsung-tv/

ソース: gbhackers.com