iTerm2の脆弱性がSSH統合エスケープシーケンスを悪用してテキストをコード実行に変換

人気のあるiTerm2 macOSターミナルエミュレーターの新たに開示された脆弱性は、単純なテキストファイルを閲覧するだけでも特定の条件下で任意のコード実行につながる可能性があることを示しています。

OpenAIと協力しているセキュリティ研究者が、iTerm2のSSH統合とターミナルエスケープシーケンスの処理を悪用する脆弱性を発見しました。

iTerm2は、リモートセッションをより効果的に理解することでユーザー体験を改善するために設計されたSSH統合機能を含んでいます。

この機能の一部として、iTerm2はリモートシステムに「コンダクター」と呼ばれる小さなヘルパースクリプトをデプロイします。このスクリプトはDCS 2000pおよびOSC 135などの特殊なエスケープシーケンスを使用してターミナルと通信します。

問題が生じるのは、iTerm2がこれらのエスケープシーケンスが信頼できるSSHセッションから発信されたものかどうかを適切に検証しないためです。

代わりに、ターミナル出力を盲目的に信頼します。これにより、攻撃者が悪質なシーケンスを一見無害に見えるコンテンツに注入する機会が生まれます。

ユーザーがcat readme.txtのような基本的なコマンドを実行すると、攻撃がトリガーされます。悪質なコンテンツはSSHコンダクターになりすまし、iTerm2を騙して統合ワークフローを開始させます。

コード実行を達成するために、攻撃者はsshargsとして知られるフィールドを操作します。この値は、iTerm2がその応答をbase64でエンコードするときに、結果の文字列の一部が有効なファイルパスになるように細工されています。

悪質な実行可能ファイルがそのパスに存在する場合、ローカルシェルは自動的にそれを実行します。このテクニックは一般的なセキュリティ警告をバイパスします。なぜなら、コマンドは合法的なターミナル動作に由来しているように見えるからです。

この脆弱性は、出力がデフォルトで安全に扱われることが多いターミナルエミュレーターにおけるより深い信頼の問題を浮き彫りにしています。

この場合、単に信頼されていないコンテンツを表示するだけで、ユーザーの明確な意図がなくてもコマンドが実行される可能性があります。

この欠陥は事実上ターミナル出力を攻撃ベクトルに変え、コマンドラインの安全性についての長年の仮定に異議を唱えています。

ただし、パッチはまだ安定した公式リリースに含まれていません。

公式アップデートが広く利用可能になるまで、ユーザーは予防措置を取るべきです:

この事件は、ターミナルエミュレーターのような信頼できるツールでも、入力検証に関する仮定が失敗すると攻撃対象になる可能性があることを思い出させています。

翻訳元: https://cyberpress.org/iterm2-flaw-abuses-ssh-integration-escape-sequences-to-turn-text-into-code-execution/

ソース: cyberpress.org