概要
golang.org/x/crypto パッケージのSSHサーバ実装に、ソースアドレス制限を完全にバイパスできる認証の欠陥(CVSS 10.0)が発見されました。
以前のCVE-2024-45337で「公開鍵コールバック以外が設定されている場合にソースアドレス検証がスキップされる」という問題が修正されましたが、その修正が不完全でした。パスワード認証や鍵盤操作型認証など公開鍵以外のコールバックが設定されていると、今回も同じバイパスが成立します。
結果として、restrict-destination-v00@openssh.com などの宛先制限拡張が付いたSSHキーも、本来許可されていない送信元ホストから制限なしに利用できてしまいます。
CVSSベクトル
| 指標 | 値 |
|---|---|
| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| Scope | Changed |
| Confidentiality Impact | High |
| Integrity Impact | High |
| Availability Impact | High |
| CVSSスコア | 10.0 (Critical) |
影響を受けるソフトウェア
| 製品 | バージョン |
|---|---|
| golang.org/x/crypto | v0.38.0 以前 |
Go標準ライブラリではなく、golang.org/x/crypto パッケージを直接使用してSSHサーバを実装しているGoアプリケーションが影響を受けます。
修正バージョンと回避策
- 修正バージョン:
golang.org/x/cryptov0.39.0 以降 go get golang.org/x/crypto@latestでアップデート後、再ビルドとデプロイを実施
また、本修正に伴い NewKeyring() が返すインメモリキーリングは、未サポートの制約拡張を持つキーを黙って無視するのではなくエラーを返すようになりました。既存コードの動作変更が発生する場合があります。
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
