特定の文字列を処理するときにコードが実行される xterm の脆弱性

xterm ターミナル エミュレータに脆弱性 (CVE-2022-45063) が確認されました。この脆弱性により、特定のエスケープ シーケンスがターミナルで処理されるときにシェル コマンドが実行される可能性があります。 最も単純な場合の攻撃の場合、たとえば cat ユーティリティを使用して特別に設計されたファイルの内容を表示するか、クリップボードから行を貼り付けるだけで十分です。 printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

この問題は、フォント オプションの設定または取得に使用されるコード 50 エスケープ シーケンスの処理エラーが原因で発生します。 要求されたフォントが存在しない場合、オペレーションは要求で指定されたフォント名を返します。 名前に制御文字を直接挿入することはできませんが、返される文字列はシーケンス「^G」で終了することができます。zsh では、vi スタイルの行編集モードがアクティブな場合、リスト展開操作が実行されます。 Enter キーを明示的に押さずにコマンドを実行するために使用されます。

この脆弱性を悪用するには、ユーザーはコマンド ライン エディタ (vi-cmd-mode) を「vi」モードに設定して Zsh コマンド シェルを使用する必要があります。通常、ディストリビューションではデフォルトでこのモードは使用されません。 この問題は、xterm 設定のallowWindowOps=falseまたはallowFontOps=falseが設定されている場合にも発生しません。 たとえば、allowFontOps=false は OpenBSD、Debian、RHEL では設定されていますが、Arch Linux ではデフォルトでは適用されません。

変更点のリストと問題を特定した研究者の声明から判断すると、この脆弱性は xterm 375 リリースで修正されたと考えられますが、他の情報源によると、この脆弱性は Arch Linux の xterm 375 でも引き続き発生しているとのことです。 Debian、RHEL、Fedora、SUSE、Ubuntu、Arch Linux、OpenBSD、FreeBSD、NetBSD のページで、ディストリビューションごとの修正の公開を追跡できます。

出所: オープンネット.ru

コメントを追加します