OnePlusはこのほど、OxygenOSに存在する深刻な脆弱性チェーンについて、詳細なフォレンジック報告書を受け取りました。この欠陥を悪用すると、権限を一切持たない通常のAndroidアプリが、ユーザーに権限を一つも要求することなく、root権限を取得できます。ところが同社は、迅速な修正を優先するどころか、独立系研究者のRasmus Moorats氏に対し、技術的な詳細を公開すれば重大な法的責任を問われる可能性があると警告しました。
Moorats氏は、OxygenOSの独自コンポーネントに深く組み込まれた2つの異なる設計上の欠陥を特定しました。1つ目の脆弱性は、テレメトリとデバッグを担う高権限のシステムデーモンAtlasServiceにあります。このサービスは完全なroot権限で動作します。しかも、あらゆる稼働中のプロセスからのBinder呼び出しを受け付け、重要な送信元の検証を完全に省略しています。
AtlasServiceとハードウェアデーモンの悪用
悪意のあるアプリは、音声診断ハンドラを不正に操作することで、自身のデータを特権システムコマンドに直接注入できます。その結果、実効ユーザーID(UID)を0に昇格させることに成功します。この初期段階では、Security-Enhanced Linux(SELinux)の厳格なアーキテクチャがプロセスの権限を一時的に制限します。それでも、この状況は看過できません。工場出荷時にインストールされたOnePlusの特権コンポーネントに起因するこの種のリスクは、2017年の悪名高い事例を想起させます。このとき調査担当者は、広く普及していたEngineerModeアプリに、スーパーユーザー権限が隠れていたことを発見しました。
攻撃チェーンの第2段階では、ハードウェアサービスデーモンのolc2が悪用されます。このコンポーネントにはdoShellという極めて危険な関数があり、呼び出し元のプロセスがすでにUID 0を取得していれば、任意のコマンドを無差別に実行します。前段のAtlasServiceの脆弱性は、この前提条件をそのまま満たします。その結果、注入されたコマンドは非常に高い権限のコンテキストで実行され、CAP_SYS_MODULE、CAP_SYS_RAWIO、CAP_SYS_PTRACEをはじめとする強力なLinux Capabilityを幅広く継承します。SELinuxは有効なままですが、悪意のあるアプリは通常のAndroidセキュリティサンドボックスの根本的な境界を突破できます。
ゼロクリックに近い悪用の実態
恐ろしいことに、この攻撃の実行にブートローダーのアンロックや既存のroot環境は不要です。Androidの権限をユーザーが明示的に付与する必要もありません。必要なのは、ユーザーが細工されたAPKファイルを誤ってインストールし、起動することだけです。Moorats氏は、インターネットから直接行うリモート攻撃の手法までは実証していません。しかし、ローカルにインストールされたプログラムが、ユーザー操作をほぼ必要とせずにシステム全体を掌握できるシナリオは、近年増えています。
研究者は、この2つの脆弱性を2026年4月18日にOnePlusへ正式に報告しました。同社は5月20日に欠陥を正式に認め、多数のOnePlusおよびOPPO端末が影響を受けると認めました。一方で、影響を受ける端末モデルや脆弱なファームウェアバージョンの包括的な一覧の公開は、頑なに拒否しました。同時にOnePlusは、脆弱性の公開時期を決める「排他的な最終的権利」を主張しました。さらにMoorats氏に対し、無断で公開した場合の重大な法的影響について、厳しく警告しました。技術的な詳細は、研究者のブログに掲載されたOnePlus OxygenOSのroot権限取得脆弱性チェーンの解説で、全文を読むことができます。
開示、パッチ、繰り返される対応の遅れ
その後、OnePlusは必要なソフトウェアパッチを完成させるため、大幅な期間延長を緊急に要請しました。Moorats氏はこれを快諾し、公開を9月17日まで見送ることに同意しました。7月20日と9月11日にパッチの進捗を繰り返し問い合わせましたが、返答はありませんでした。研究者は最終的に9月24日、包括的な技術分析を公開しました。分析では、2つの根本的な欠陥と、その後の権限昇格チェーンを詳細に解説しています。
公開時点で、この脆弱性チェーンはまったく修正されていませんでした。しかしその後、状況は変化しています。Moorats氏は最近、OnePlusがフラッグシップ機のOnePlus 15で、ファームウェアアップデートOxygenOS 16.0.10.500(EX01)により両方の脆弱性を無効化したことを確認しました。ただ、OnePlusおよびOPPOの他の端末全体での修正状況は、依然として極めて不透明です。メーカーが公式かつ包括的なパッチ一覧を公表していないためです。
OnePlusにとって、今回の騒動は、脆弱性開示をめぐる大きな論争としては、わずか数週間で2件目です。9月初めには、セキュリティ専門企業のDoyensecが、プリインストールアプリ経由でOnePlus Cloudの認証トークンを盗める重大な欠陥を公表しました。この公表は、公式パッチを9か月も待たされた末にやむなく行われたものです。
今回の件は、スマートフォンメーカーが堅牢なAndroidの基盤の上に、欠陥だらけの独自コードを持ち込むことの重大なリスクを、改めて浮き彫りにしました。昨年にも、概念的にはまったく同じ事例がありました。このときは深刻な脆弱性により、インストール済みのあらゆるプログラムが、必須であるREAD_SMS権限を要求することなく、SMSメッセージを不正に傍受できました。研究者らは、強制的な公開に至る前のOnePlusの長引く沈黙を、再び指摘しています。
翻訳元: https://meterpreter.org/oneplus-oxygenos-root-vulnerability-disclosure/