
LG Root Exploit
LG ルートエクスプロイト
謝辞: アップデート内の奇妙なバイナリ(spritebud)を指摘してくれた Juggie に感謝します。それがこの脆弱性を発見するきっかけとなりました。
対象: Sprite Software のバックアップソフトウェアにおけるレースコンディション。OEMによって LG Android デバイスにインストールされています。
CVE ID: CVE-2013-3685
影響: デバイスユーザーの操作が最小限で済むローカルエクスプロイトの脆弱性であり、ルートユーザーとしてコードを実行できるようになります。特定の状況下では、デバイスユーザーに気付かれることなくこの脆弱性を悪用することが可能です。
製品: "Backup" "spritebud"
ベンダー: Sprite Software LG Electronics 他のベンダーも含まれる可能性があります。
影響を受けるバージョン: spritebud 1.3.24 backup 2.5.4105 他のバージョンも影響を受ける可能性が高いです。
影響を受けるデバイス(ファームウェア構成に依存): LG-E971 LG Optimus G LG-E973 LG Optimus G LG-E975 LG Optimus G LG-E975K LG Optimus G LG-E975T LG Optimus G LG-E976 LG Optimus G LG-E977 LG Optimus G LG-F100K LG Optimus Vu LG-F100L LG Optimus Vu LG-F100S LG Optimus Vu LG-F120K LG Optimus Vu LG-F120L LG Optimus LTE Tag LG-F120S LG Optimus LTE Tag LG-F160K LG Optimus LTE 2 LG-F160L LG Optimus LTE 2 LG-F160LV LG Optimus LTE 2 LG-F160S LG Optimus LTE 2 LG-F180K LG Optimus G LG-F180L LG Optimus G LG-F180S LG Optimus G LG-F200K LG Optimus Vu 2 LG-F200L LG Optimus Vu 2 LG-F200S LG Optimus Vu 2 LG-F240K LG Optimus G Pro LG-F240L LG Optimus G Pro LG-F240S LG Optimus G Pro LG-F260K LG Optimus LTE 3 LG-F260L LG Optimus LTE 3 LG-F260S LG Optimus LTE 3 LG-L21 LG Optimus G LG-LG870 LG (Unknown) LG-LS860 LG Mach LG-LS970 LG Optimus G LG-P760 LG Optimus L9 LG-P769 LG Optimus L9 LG-P780 LG Optimus L7 LG-P875 LG Optimus F5 LG-P875h LG Optimus F5 LG-P880 LG Optimus 4X HD LG-P940 LG Prada LG-SU540 LG Prada 3.0 LG-SU870 LG Optimus 3D Cube LG-US780 LG Lollipop 他のデバイスも影響を受ける可能性があります。
製品情報: "Backup" と "spritebud" は、Sprite Software が開発し、LG Android スマートフォンに搭載されている設定およびアプリのバックアップ/リストアシステムです。"Backup" はエンドユーザー向けのフロントエンドアプリであり、"spritebud" はバックアップおよびリストア機能を実行するサービスです。
詳細: "spritebud" デーモンは init スクリプトによって起動され、root ユーザーとして実行されます。このデーモンは Unix ソケットで待ち受け、"Backup" アプリからの指示を受け付けます。"spritebud" が root ユーザーで実行されているため、細工したバックアップを使用することで、任意のファイルへの書き込み、権限変更、所有者変更が可能になります。
細工したバックアップには、悪用アプリケーション "com.cunninglogic.lgpwn" のリストアデータが含まれています。データには、悪用の時間的余裕を広げるための 50MB のダミーファイル (a)、su バイナリ (b)、su をインストールするスクリプト (c)、スクリプトへのパスを含むテキストファイル (d) が含まれます。すべてのファイルはアプリケーションが所有し、ワールド書き込み/読み取り/実行が可能です。すべてのファイルはアルファベット順にリストアされます。圧縮後、バックアップ全体は約 2MB です。このバックアップの構造は次のとおりです:
drwxrwxrwx u0_a114 u0_a114 2013-05-28 20:13 files
./files:
リストアの前に、悪用アプリは実行され、プロセスを監視して待機します。リストア中、spritebud デーモンはまず files ディレクトリを作成し、その権限と所有者を設定します。次に、"a" ファイル(50MB のダミーファイル)を解凍してリストアします。"a" のリストア中に、悪用アプリケーションは、スクリプト (c) へのフルパスを含むテキストファイル "d" を /sys/kernel/uevent_helper へのシンボリックリンクにする時間があります。"d" ファイルのリストア後、パスが uevent_helper に書き込まれます。ホットプラグイベントが発生すると(数秒ごとに発生)、uevent_helper に含まれるパスがカーネルによって実行され、スクリプト (c) が実行されて su バイナリ (b) がインストールされます。