web-dev-qa-db-ja.com

ShellshockエクスプロイトはOpenSSHでどのように機能しますか?

CERTリリースにリストされている3つのオプション(AcceptEnv TERMおよびSSH_ORIGINAL_COMMAND)は、すべてサーバー側のオプションです。 Bashが修正されていない場合でも、これらのいずれもホストに設定されていない場合(およびhttpベクターが使用できない場合)、ホストは安全ですか? opensshサーバーでAcceptEnv = HACKを設定した場合、これは機能しませんか?

HACK='() { :;}; /usr/bin/touch /tmp/illegal' ssh user@Host
5
Chinthamani

あなたはssh側から安全であるはずですが、 dhclient-script のような他のベクトルもあります。

ちなみに、アクセスが制限されたユーザー(chrootやsftp-onlyなど)がある場合にのみ、SSHを介して「脆弱」になります。すべてのユーザーが完全なシェルアクセスを持っている場合、このエクスプロイトを使用してコマンドを実行する可能性があっても、とにかくそれを行うことができます。

3
P.Péter

私の知る限り、あなたは正しいです。 AcceptEnvが設定されていない場合、リモートクライアントはSSHサーバーに環境変数を処理させることができません。

認証済みクライアントとしてSSHを介してコマンドを実行し、そのコマンドを取得して、細工された環境変数をロードできることに注意してください。つまり、 Bashスクリプトを実行しているsetuid/setgidバイナリ がある場合、これはシステムを危険にさらすために使用される可能性があります認証済みユーザーによるローカルまたはSSHを介してリモートで。

2