OpenSSH 9.1 のエクスプロイト作成の進捗状況

Qualys は、有効なエクスプロイトが作成されるリスクが低いと判断された OpenSSH 9.1 の脆弱性を使用して、malloc および double-free 保護をバイパスしてコードへの制御の移行を開始する方法を発見しました。 同時に、有効なエクスプロイトを作成できるかどうかは依然として大きな疑問です。

この脆弱性は、認証前の二重解放によって引き起こされます。 脆弱性が現れる条件を作成するには、SSH クライアントのバナーを「SSH-2.0-FuTTYSH_9.1p1」(または別の古い SSH クライアント)に変更して、「SSH_BUG_CURVE25519PAD」および「SSH_OLD_DHGEX」フラグを設定するだけで十分です。 これらのフラグを設定した後、「options.kex_algorithms」バッファーのメモリが XNUMX 回解放されます。

Qualys の研究者は、この脆弱性を操作しながら、次に実行される命令へのポインタを含む「%rip」プロセッサ レジスタの制御を取得することができました。 開発された悪用技術を使用すると、OpenSSH 7.2 でデフォルトで提供される、更新されていない OpenBSD 9.1 環境の sshd プロセスのアドレス空間内の任意のポイントに制御を移すことができます。

提案されたプロトタイプは、攻撃の最初の段階のみを実装したものであることに注意してください。実用的なエクスプロイトを作成するには、ASLR、NX、および ROP 保護メカニズムをバイパスし、サンドボックス分離を回避する必要がありますが、これは可能性が低いです。 ASLR、NX、ROP のバイパスの問題を解決するには、アドレスに関する情報を取得する必要がありますが、これは情報漏洩につながる別の脆弱性を特定することで実現できます。 特権のある親プロセスまたはカーネルのバグがサンドボックスの終了に役立つ可能性があります。

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

コメントを追加します