Tabby の脆弱性 CVE-2024-55950 が FIX:macOS TCC バイパスとの連鎖の懸念

CVE-2024-55950: Tabby Terminal Emulator Vulnerability Exposes macOS Users to Privacy and Security Risks

2024/12/29 SecurityOnline — Tabby (以前の Terminus)に、深刻度の高い脆弱性 CVE-2024-55950 (CVSS:8.6) が発見された。Tabby は、Windows/macOS/Linux で広く使用されている Terminal Emulator/SSH Client である。GitHub では約 61,000 個のスターを獲得し、1,500 万回を超えるダウンロード数を誇る Tabby であるだけに、過度に緩い権限と不要なアクセス許可により、多くのユーザーが潜在的なリスクにさらされることになる。

Tabby の macOS アプリケーションには、Apple イベントを経由するカメラ/マイク/個人用フォルダへのアクセスといった、過剰なアクセス許可が含まれると警告されている。これらのアクセス許可は、以下のような危険な権限と組み合わされ、深刻なセキュリティ・リスクをもたらす。

  • com.apple.security.cs.allow-dyld-environment-variables
  • com.apple.security.cs.disable-library-validation

アドバイザリによると、「Tabby のプラグイン・システムは NodeJS ベースであり、外部のネイティブ・ライブラリを必要としないため、Tabby の動作において、これらの権限は必要ない」と記されている。実際に、iTerm2 や Waveterm などのターミナル・エミュレーターは、これらの権限なしで機能するため、その必要性はさらに疑問視されている。

この過剰な権限により、以下のような複数の攻撃ベクターが成立する。

● TCC バイパス

攻撃者は、DYLD_INSERT_LIBRARY インジェクションまたは、dylib ハイジャックを介して、攻撃者は悪意のコード挿入を達成する。この挿入されたコードは Tabby の広範な権限を継承し、以下の不正アクセスを許可する。
カメラとマイクによる監視
ダウンロードやドキュメントなどの、個人用ディレクトリへの不正アクセス
ユーザーの同意を必要としない、システム・レベルでのアクセス

● プライバシーへの影響

不正な監視とデータ抽出は大きなリスクであり、ハードウェア・アクセスによるサイレント・モニタリングの可能性も生じる。

● セキュリティ侵害
挿入された悪意のコードは、macOS のセキュリティ制御をバイパスし、不正なアクションを実行し、ユーザーの機密情報を侵害する可能性もある。

このアドバイザリが警告するのは、「Tabby の膨大なユーザー・ベースと、Tabby が保持する広範な TCC 権限を考慮すると、侵害が生じた場合の結果が懸念される」というものだ。

脆弱性 CVE-2024-55950 が影響を及ぼす範囲は、Tabby のバージョン 1.0.216 未満であるため、ユーザーに対して強く推奨されるのは、パッチ適用バージョン (1.0.216) へと、速やかに更新することだ。

また、このアドバイザリでは、リスクを軽減するために、以下を推奨している。

  • com.apple.security.cs.allow-dyld-environment-variables などの不要な権限を確認して削除する。
  • 対象となる機能に必要な権限が、最小限の設定と一致していることを確認する。

この欠陥を発見したとされるセキュリティ研究者の Winslow は、PoC エクスプロイトもリリースし、この脆弱性の現実世界への影響を実証している。

このような脆弱性に直面するアプリケーションとして、Tabby は最初のものではない。同様の TCC バイパスについては、以下の欠陥が文書化されている:

  • Signal TCC バイパス:CVE-2020-24259
  • Telegram TCC バイパス:CVE-2023-26818

このアドバイザリが強調するのは、「ターミナル・エミュレーターでは、昇格された権限が必要になることが多い。TCC バイパスが成功するとリスクが増大するため、Tabby の状況には、さらなる注意が必要である」という点だ。

開発者にとって必要なことは、アプリケーションの攻撃対象領域を最小限に抑えるために、不要な権限を制限することである。

Tabby に依存している macOS ユーザーにとって、最新バージョンへのアップグレードは推奨ではなく必須である。