最近のlibsshの脆弱性 のようなバグはどのようにして発生しましたか?バグの性質と根本的な原因は何ですか?
libsshのWebサイト から:
libsshバージョン0.6以降には、サーバーコードに認証バイパスの脆弱性があります。サーバーが認証を開始すると期待するSSH2_MSG_USERAUTH_REQUESTメッセージの代わりにSSH2_MSG_USERAUTH_SUCCESSメッセージをサーバーに提示することにより、攻撃者は資格情報なしで(sic)認証に成功する可能性があります。
私にとって、これは私にさらに質問を投げかけます:なぜサーバーはクライアントからの何かを信頼するのですか?どして SSH2_MSG_USERAUTH_SUCCESS
も存在しますか? sshプロトコルの一部ですか?
このバグおよび多くのバグの原因となった根本的な問題は、誤った仮定です。つまり、特定のメッセージ(SSH2_MSG_USERAUTH_SUCCESS)のみが送信されるbyサーバーをクライアントに送信する... libsshは、悪意のあるクライアントがこのメッセージを送信する可能性があると見なすことができなかったto aサーバ。この失敗した仮定に基づいて、ライブラリには、このメッセージが到着したときに(接続が受け入れられた場合と同様に)クリックする単一の状態マシン(クライアントとサーバーの実装で共有)がありました。一般に、セキュリティホールを生み出すのは誤った仮定です。