web-dev-qa-db-ja.com

CVE-2018-10933(libssh認証バイパス)などのバグはどのようにして発生しましたか?

最近のlibsshの脆弱性 のようなバグはどのようにして発生しましたか?バグの性質と根本的な原因は何ですか?

libsshのWebサイト から:

libsshバージョン0.6以降には、サーバーコードに認証バイパスの脆弱性があります。サーバーが認証を開始すると期待するSSH2_MSG_USERAUTH_REQUESTメッセージの代わりにSSH2_MSG_USERAUTH_SUCCESSメッセージをサーバーに提示することにより、攻撃者は資格情報なしで(sic)認証に成功する可能性があります。

私にとって、これは私にさらに質問を投げかけます:なぜサーバーはクライアントからの何かを信頼するのですか?どして SSH2_MSG_USERAUTH_SUCCESSも存在しますか? sshプロトコルの一部ですか?

3
jamesdlin

このバグおよび多くのバグの原因となった根本的な問題は、誤った仮定です。つまり、特定のメッセージ(SSH2_MSG_USERAUTH_SUCCESS)のみが送信されるbyサーバーをクライアントに送信する... libsshは、悪意のあるクライアントがこのメッセージを送信する可能性があると見なすことができなかったto aサーバ。この失敗した仮定に基づいて、ライブラリには、このメッセージが到着したときに(接続が受け入れられた場合と同様に)クリックする単一の状態マシン(クライアントとサーバーの実装で共有)がありました。一般に、セキュリティホールを生み出すのは誤った仮定です。

7
DarkMatter