IPVanish VPN for macOSの深刻な権限昇格脆弱性により、ローカル攻撃者はコード署名チェックなどの主要なセキュリティ機能を回避して、rootとして任意のコードを実行できます。
IPVanishは標準的なmacOSアーキテクチャに従い、ユーザースペースのアプリケーションがXPCサービスを経由して、root権限のあるヘルパーツール(com.ipvanish.osx.vpnhelper)と通信します。
根本的な問題は、ヘルパーはXPC接続の認証が不足しています。ローカルの任意のプロセスがMachサービスに接続でき、entitlementや署名検証なしにコマンドを送信できます。
攻撃者はこれを悪用して、細工されたXPCメッセージを送信します。ヘルパーはOpenVPNバイナリパスおよび設定スクリプトなどのサニタイズされていないパラメータを抽出し、盲目的に信頼します。
エクスプロイトは2つの欠陥に依存しています:認証されていないXPCと欠陥のあるコード署名ロジック。
まず、ヘルパーのXPCリスナーは任意のプロセスからの接続を受け入れます。攻撃者は/tmp/のような世界書き込み可能なスポットに悪意のあるファイルパスを指定するメッセージを送信します。
次に、セキュアなファイル配置を目的とするコピー機能は、ソースが実行可能ビットを持たない場合、署名チェックをスキップします。
攻撃者は実行不可能な悪意のあるスクリプトを作成し、rootが所有するディレクトリ(例:/Library/PrivilegedHelperTools/)へのコピーをトリガーし、ヘルパーに+xをchmodさせます。これで、署名されていない攻撃者制御のバイナリがrootとして実行されます。
ローカルでの存在以外のネットワークアクセスやユーザーインタラクションは不要であり、共有またはセキュリティ侵害されたmacOSシステムにとって壊滅的です。
ユーザーは直ちにIPVanishを更新し、パッチの監視を続けるべきです。必要に応じてlaunchctlを経由してヘルパーツールを無効化してください。
この欠陥はmacOSアプリのXPC落とし穴を強調しています:常に呼び出し元を認証し、入力をサニタイズし、署名チェックを実施してください。開発者は権限昇格チェーンを防止するため、層防御を優先する必要があります。