はい、脆弱性がありますが、@LonelyDeveloper がコメントで述べたように、ジェイルブレイクされたデバイスに関する心配はほとんどないと思います。
あなたが投稿したコードを使用して、誰かがアプリの Info.plist を変更すると (ジェイルブレイクされた電話で実行できUIViewController
ます)、アプリは の別のサブクラスをロードします。それだけの場合、アプリに既に存在するサブクラス、またはアプリが既に読み込んでいるライブラリのみになります。
これを行うと、アプリが正しく機能しなくなる可能性があります。アプリに完全に悪意のあることを行わせるには、あまり良い方法とは思えません。
アプリには他の欠陥が必要です。たとえば、これがデータをキャッシュする銀行アプリだとしましょう。アプリが開き、ログイン ビュー コントローラーが表示されます。アカウント ビュー コントローラーには機密情報が表示されますが、アプリでは、ログイン ビュー コントローラーを介してパスワードを正しく入力しない限り、アカウント ビュー コントローラーを表示できません。この plist の読み込みで、plist が を読み込むように指示LoginViewController
し、攻撃者が plist を変更して を指定するAccountViewController
と、保護すべき情報にアクセスできる可能性があります。しかし、このシナリオは欠陥の組み合わせを示していると思います。
ただし、悪意のあるユーザー (誰かがあなたの電話を盗んだ) または Cydia からの悪意のあるダウンロードによってMobileSubstrateの微調整がインストールされた場合、アプリから間違ったビュー コントローラーだけでなく、の任意のサブクラスを読み込むことができます。UIViewController
ただし、これにより、plist クラスをロードしなくてもこれを行うことができます。MobileSubstrate の微調整では、フックを使用してあらゆる種類の新しいコードを事実上必要な場所に挿入できます。
したがって、この脆弱性はすでに存在しており、ジェイルブレイク コミュニティとジェイルブレイク リポジトリが悪意のあるソフトウェアから適切に保護できることを信頼する必要があります。これが、脱獄したデバイスに基本的に Cydia、SBSettings、Activator、および Saurik の UNIX コマンド ライン ツールのみをインストールする理由です。