PuTTY 0.84、SSHのKEXクラッシュとTelnetなりすまし脆弱性を修正

PuTTYは2026年5月24日にバージョン0.84をリリースし、3件の確認済みセキュリティ脆弱性にパッチを適用しました。そのうち2件はSSH鍵交換のクラッシュに関するもの、1件はTelnetを悪用した認証情報なりすましを可能にするものです。

この開示はOracle SolarisのエンジニアであるAlan Coopersmithによってoss-securityメーリングリストで発表され、0.71以降のすべての旧バージョンに存在する修正内容が対象です。PuTTY 0.83以前を使用しているすべてのユーザーは、これを優先アップデートとして対応すべきです。

最初のECDSA署名検証の脆弱性は、バージョン0.71(2019年3月リリース)からPuTTYに潜んでいたものです。

この脆弱性は、PuTTYの楕円曲線演算コードにある誤ったアサーションに起因しています。具体的には、同じy座標を持つ2つの楕円曲線点の加算を、数学的に有効であるにもかかわらず、誤ってエラー条件として扱っていました。

SSHの初期鍵交換時に、中間者攻撃(MITM)の攻撃者が細工されたホスト鍵と署名を差し込むことで、このアサーション失敗を引き起こし、ユーザーが信頼されていないホスト鍵や予期しないホスト鍵に関する警告を受け取る前にPuTTYをクラッシュさせることができます。

PuTTYはホスト鍵の署名を既知ホストキャッシュとの照合前に検証するため、クラッシュはユーザーへの通知なしにサイレントで発生します。

このバグはWeierstrass形式のNIST曲線(P256、P384、P521)にのみ影響します。広く使用されているEd25519およびEd448アルゴリズムへの影響は一切ありません。

この脆弱性は低深刻度のDoSとして分類されています。PuTTYはプロセスごとに1つのSSHセッションを実行するため、他の開いているセッションには影響しません。ただし、同じウィンドウの前のセッションのターミナルスクロールバックデータはクラッシュ時に失われる可能性があります。

セキュリティ研究者のGuido Vrankenが、P256の動作するプルーフ・オブ・コンセプトとともにこのバグを発見・報告しました。

2件目の脆弱性は、PuTTY 0.72(2019年7月)で導入され0.83まで継続しているもので、RFC 4432で定義されたRSA鍵交換方式のPuTTY実装におけるダブルフリーのメモリ破壊バグです。

このコードは誤ってssh_rsakex_freekey()(RSA構造体全体を解放)を呼び出した後、同じ既に解放済みのメモリに対して標準のfree()関数を呼び出していました。

悪意のあるサーバーやMITM攻撃者は、KXINITパケットでサポートアルゴリズムとしてRSA KEXのみを通知し、予期せず短いRSA鍵を送信することで、意図的にこれを引き起こすことができます。

これはホスト鍵の検証前に発生するため、未確立のセッションもリスクにさらされます。制御可能なコード実行を達成できる既知の攻撃経路はありませんが、リモートからトリガー可能なクラッシュであるため、正式な脆弱性として認定されています。

根本原因は、PuTTYのコードベースからテスト用SSHサーバーを構築する2019年のリファクタリング作業にあり、RSA鍵構造体の所有権と既に解放済みかどうかについての混乱が生じました。

3件目の脆弱性は、PuTTY 0.77(2022年5月)で導入されたもので、認証済みネットワークプロキシ経由でルーティングされるTelnetおよびRloginセッションに影響します。

PuTTYは「トラストシジル」(PuTTY自身のプロンプトの横に表示される小さなPuTTYアイコンのマーカー)を使用して、正当なPuTTYが生成した認証プロンプトと悪意のあるサーバーによるなりすましプロンプトを区別し、悪意のあるサーバーによる認証情報フィッシングからユーザーを守っています。

このバグにより、PuTTYはプロキシ認証完了後にトラストシジルの状態をクリアできず、Telnetセッション全体が誤ってそれらの信頼済みマーカーを継承してしまいました。

MITM攻撃者はこれを悪用し、プロキシ認証直後に偽の「プロキシパスワードを再入力」プロンプトを送信することができます。これはユーザーが異常に気づく前に、信頼済みのPuTTYアイコンが付いた状態で表示されます。

ユーザーがセッションのすべてのテキストにマーカーが付いていることに気づいた時には、すでに認証情報が漏洩している可能性があると、Alan Coopersmithは述べています

修正された3件の脆弱性に加え、EdDSAの過大なS値の問題に対してCVE-2026-4115が別途発行され、今回のリリースで修正されました。

ただし、PuTTYのメンテナーはこれをセキュリティ脆弱性として分類することに明示的に異議を唱えており、公式PuTTYウィッシュリストページで詳細な技術的反論を提示しています。

ユーザーは直ちにPuTTY 0.84にアップグレードすべきです。ダウンロードはPuTTY公式ウェブサイトから入手できます。認証済みプロキシ経由のTelnetベースのワークフローを使用している組織は、特にこのアップデートを優先することが強く推奨されます。

翻訳元: https://cyberpress.org/putty-0-84-fixes-ssh-kex/

ソース: cyberpress.org