GSSAPI認証のOpenSSH脆弱性がSSHプロセスのクラッシュを引き起こす可能性

新たに発見されたOpenSSHの脆弱性により、複数のLinuxディストリビューションがリスクにさらされており、攻撃者は悪意のあるパケット1つでSSHプロセスをクラッシュさせることができます。

CVE-2026-3497として追跡されているこの脆弱性は、GSSAPI Key Exchangeパッチを使用するシステムに影響し、未認証の攻撃者がサービス拒否条件を引き起こし、権限境界を超える可能性があります。

この脆弱性は主にUbuntuやDebianなど、OpenSSHパッケージにGSSAPI Key Exchangeパッチを含むLinuxディストリビューションに影響を与えます。

この問題はGSSAPI Key Exchange(KEX)サーバーループ内のエラーハンドリングロジックのエラーに由来しています。

エラーが発生すると、コードは意図されたssh_packet_disconnect()の代わりに誤ってsshpkt_disconnect()関数を呼び出します。

この違いは重要です。ssh_packet_disconnect()関数は接続を即座に終了するよう設計されていますが、sshpkt_disconnect()は単に切断メッセージをキューに入れ、プログラムが実行を続けることを許可します。

プロセスが適切に終了されないため、プログラムはデフォルトのエラーハンドリングパスにフォールスルーします。

このプロセス中に、コードはrecv_tokという初期化されていないスタック変数を読み込みます。この変数の内容は、プロセス間通信(IPC)を使用して権限のあるrootモニタープロセスに送信されます。

その後、変数はgss_release_buffer()関数に渡され、初期化されていない変数に格納された値を使用してメモリを解放しようとします。

ポインタに予測不可能なデータが含まれているため、システムはガベージメモリアドレスに対してfree()を呼び出そうとし、深刻なメモリ破損とプロセスの即座のクラッシュにつながります。

攻撃者は認証なしでこの脆弱性を悪用できるため、インターネット向けSSHサーバーにとって特に危険です。

漏洩したメモリの正確な内容は、実行中のスタックレイアウトに影響を与えるコンパイラ設定、最適化レベル、ビルドフラグなどの要因に依存します。

この脆弱性は主にOpenSSHがGSSAPI Key ExchangeパッチでビルドされたLinux環境に影響を与えます。

SSHサーバー設定でGSSAPIKeyExchangeオプションが有効になっている場合、システムは脆弱です。

UbuntuとDebianサーバーはこのパッチをパッケージ化されたOpenSSHビルドに含めているため、最も一般的に影響を受けます。

Canonicalのメンテナーはすでにこの問題を修正するパッチをリリースしています。修正には、kexgsss.cソースファイル内の3つの脆弱なサーバー側の場所で、誤ったsshpkt_disconnect()呼び出しを適切なssh_packet_disconnect()関数に置き換えることが含まれます。

管理者は、ディストリビューションのセキュリティ更新を通じてパッチが利用可能になったら、OpenSSHパッケージをできるだけ早く更新することを強くお勧めします。

すぐにパッチを適用できないシステムの場合、管理者はSSHデーモン設定でGSSAPIKeyExchangeオプションを無効にすることで、リスクを軽減できます。

これは脆弱なコードパスがトリガーされるのを防ぎ、公式の更新が適用されるまでシステムを保護します。

翻訳元: https://cyberpress.org/new-openssh-flaw-in-gssapi-authentication/

ソース: cyberpress.org