libssh2に深刻な脆弱性が4件、悪意あるSSHサーバーがクライアントのメモリを破損可能に

多くのクライアントアプリケーションやツール、DevOpsパイプラインに組み込まれている広く使われるSSHライブラリlibssh2に、新たに深刻度の高い4件の脆弱性が公開されました。

悪意のある、あるいは侵害されたSSHサーバーは、接続時や認証時に悪意ある応答を返すだけで、クラッシュから遠隔コード実行の可能性まで、クライアント側のメモリを破損させることができます。影響を受けるバージョンはlibssh2 1.11.1以下で、修正はすでに上流にマージされています。

CVSS v4で8.7と評価されたこのダブルフリー脆弱性(CWE-415)は、CVE-2026-66032として追跡されており、src/sftp.c内のsftp_open()に存在します。サーバーがSSH_FXP_OPENへの応答としてFX_OK付きのSSH_FXP_STATUSを送信すると、応答バッファが解放されます。

その後のsftp_packet_require()呼び出しがLIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDEDを返した場合、同じポインタが再度解放されてしまいます。glibcシステムでは、これによりtcacheの二重解放状態が発生し、攻撃者が重複するメモリ割り当てを作り出し、関数ポインタを上書きできる可能性があります。

この認証前の脆弱性はCVE-2026-66033として識別されており、CVSSスコアは8.7です。src/openssl.c内のssh2_cipher_crypt()に影響します。

ハンドシェイク中にAES-GCM暗号を交渉させることで、悪意あるサーバーは「ブロックサイズ引くAADの長さ引くタグの長さ」の計算において整数アンダーフロー(CWE-191)を引き起こします。

結果として発生する範囲外読み取りは、SIZE_MAXに近い長さの引数を伴うmemcpy()呼び出しに渡され、認証が行われる前の段階でクライアントを即座にクラッシュさせます。

CVSSスコア7.7のCVE-2026-66034は、libssh2_publickey_list_fetch()に関わるものです。バージョン1の応答パーサーは、残りのバッファバイト数を検証しないまま、サーバー側から渡されるcomment_lenの値を信用してしまいます。

これにより、隣接するヒープポインタを漏洩させ、ASLRを無効化する、任意長のヒープ範囲外読み取り(CWE-125)が発生します。さらに悪いことに、そのエラー時のクリーンアップ処理は、ゼロ初期化されていないrealloc()領域から未初期化のポインタを解放してしまい、アロケータの状態を破損させます。

同じく7.7のスコアを持つCVE-2026-66035は、fullpacket()(src/transport.c)内のEncrypt-then-MAC経路を標的とします。暗号のブロックサイズよりも小さいpacket_lengthを持つパケットを送信することで、攻撃者はlibssh2にpacket_lengthバイト分のバッファを確保させつつ、そこにblocksize - 1バイトをコピーさせることができます。

32ビットのglibcでは、このオーバーフローによって隣接するチャンクのメタデータが破損する可能性があり、ハンドシェイク中にtcacheビンの混同や関数ポインタの上書きを引き起こすことができます。

CVE-2026-66032CVE-2026-66033CVE-2026-66034CVE-2026-66035の4件すべてにおいて、被害者側は悪意あるサーバーに接続する(あるいは既に信頼している)こと以外、何も必要としません。

これにより、CI/CDパイプラインや自動デプロイツール、アウトバウンドのSSH/SFTP接続にlibssh2を組み込んでいるあらゆるソフトウェアに対する、サプライチェーン型攻撃にとって格好の標的となっています。

4件のうち3件は認証前または認証中の脆弱性であり、悪用に認証情報は前提条件になりません。

各組織は直ちに依存関係を監査してlibssh2の使用有無を確認し、パッチ済みのコミットへとアップグレードすべきです。対象は5e47761(CVE-2026-66032)、a2ed82d(CVE-2026-66033)、a13bb6c(CVE-2026-66034)、42e33d8(CVE-2026-66035)です。

関係するヒープ破損のプリミティブ、特にCVE-2026-66032CVE-2026-66035におけるtcache操作を踏まえると、これらは通常のメンテナンス更新ではなく、優先度の高いパッチとして扱うべきです。

SOC調査の死角を削減し、ANY.RUNで脅威を早期に封じ込めることで、対応コストと業務への影響を抑えましょう。

翻訳元: https://cyberpress.org/critical-four-libssh2-flaws/

ソース: cyberpress.org