HN 日本語サマリー

← 一覧へ戻る
プログラミング

OpenSSH 10.6 リリースノート

OpenSSH 10.6 (openssh.org)

25 pointsby torcete1 コメント

要約

OpenSSH 10.6がリリースされ、AIモデルによるセキュリティバグ報告の増加に対応するため、より頻繁なリリースサイクルが導入されました。今回のリリースでは、scpコマンドの-Rフラグの非推奨化や、LZ77圧縮の無効化など、セキュリティ強化と機能改善が含まれています。

全文翻訳

OpenSSH リリースノート OpenSSH 10.6/10.6p1 (2026-10-06) OpenSSH 10.6は2026年10月6日にリリースされました。https://www.openssh.com/でリストされているミラーから入手可能です。OpenSSHは100%完全なSSHプロトコル2.0実装であり、sftpクライアントおよびサーバーサポートを含みます。 最近、OpenSSHチームは多数のセキュリティバグレポートを受け取りました。その多くはAIモデルからの発見、またはAI支援によってもたらされたものです。AIによる報告の多くは、現実的な脅威モデルの文脈で考慮するとセキュリティへの影響がないと判断されますが、これらの報告は、特に人間のトリアージ、分析、テストケース、そして修正案の提案と組み合わされた場合に、非常に歓迎されます。 AIツールによって特定されたセキュリティバグが、その後別の研究者によって独立して発見されるケースがいくつか見られました。これは、OSSプロジェクトにバグを報告しない敵対者が、これらのバグを発見できる可能性が高いことを示唆しています。このため、OpenSSHチームは、当面の間、バグ修正を次の計画リリースまでまとめて待つのではなく、より頻繁なリリースを行ってユーザーに迅速に届けます。 改めて、プロジェクトへの継続的なサポート、特にコードやパッチの提供、バグ報告、スナップショットのテスト、プロジェクトへの寄付をしてくださったOpenSSHコミュニティの皆様に感謝いたします。寄付に関する詳細は、https://www.openssh.com/donations.htmlをご覧ください。 将来の非推奨通知 * scp(1): リモートホストでscpを実行してリモート間コピーを行うために使用される-Rフラグの非推奨化を開始します。このオプションは、リモートホストの認証情報が必要なため、使用が難しい脆弱な最適化です。また、コピーが実行されるリモートシステムでのシェル引用符のルールがクライアントの期待と異なる場合、セキュリティリスクを生じさせます。OpenSSH 10.6以降、このオプションは引き続き機能しますが、標準エラー出力に非推奨警告が発せられます。将来のリリースでは、このオプションは無視され、デフォルトのリモート間コピー動作(scpを実行しているホスト経由でのコピー)が維持されます。 * sshd(8): ファイルディスクリプタの受け渡しを許可せず、PTY割り当てにroot権限を必要とするプラットフォームのサポートは、将来のリリースで削除されます。影響を受けるプラットフォームとしては、SCO OpenServer 5やQNX 6が知られていますが、同様に古いオペレーティングシステムも含まれる可能性があります。この非推奨化は、これらのプラットフォームのユーザーコミュニティが、PTY割り当てでroot権限を必要としない代替手段の構築を支援できれば回避できます。 潜在的に互換性のない変更 * ssh(1), sshd(8): 「セキュリティ」セクションの以下の変更の結果、圧縮の効果が低下します。 * ssh(1): コマンドラインで入力された宛先ユーザー名は、より厳密にチェックされるようになり、バックスラッシュとドル記号を含むユーザー名が拒否されます。設定ファイルで指定されたユーザー名は、これらの制限を受けません。この変更の動機は、「セキュリティ」セクションで後述します。 * sshd(8): ファイルディスクリプタの受け渡しをサポートせず、PTY割り当てにroot権限を必要とするプラットフォームでは、GatewayPortsおよびStreamLocalForwardingオプションが強制的に無効になります。この変更の動機は、「セキュリティ」セクションで議論されています。 OpenSSH 10.5以降の変更点 このリリースには、多数のセキュリティ修正、いくつかの新機能、およびいくつかの小さなバグ修正が含まれています。 セキュリティ * sftp(1): サーバーから返されたパスをより厳密に検証し、サーバーが再帰的なコピー操作をターゲットディレクトリの外に書き込むように操作できる一部のケースを回避します。Junghoon Choからの報告とパッチ。 * sshd(8): GSSAPIAuthenticationが使用されている場合、認証が成功した場合にのみGSSAPI認証情報を格納します。これにより、認証に失敗したGSSAPIAuthentication試行からの認証情報が保持され、別の認証が後で成功した場合に不適切に利用可能になる状況を回避します。Moritz Theileからの問題報告とパッチ。 * sshd(8): 認証前にGSSAPIAuthenticationをリセットし、1回の認証試行からの状態が後続の試行と混同されるのを回避します。Moritz Theileからの報告とフィードバック。 * sshd(8), ssh(1): Fabian BäumerとMarcus Brinkmannによる「Crossing the Streams: SSH Plaintext Recovery via a Common Compression Context in Multiplexed Channels」で説明されているサイドチャネルリークを軽減するため、LZ77辞書コーダーを無効にします。 preprint https://arxiv.org/abs/2609.07709 (2026) 選択的平文攻撃手法が存在し、辞書ベースの圧縮を利用して、他のチャネルを介してSSHセッションの共通圧縮辞書と対話することにより、1つのチャネルから秘密情報を回復できます。攻撃者が制御できる入力は、LZ77がSSHセッションのエンコーダー検索バッファへの参照で繰り返し文字列を置き換えることにより、送信される暗号文の総長に認識可能に反映される可能性があります。このため、ドキュメントでは、信頼できるトラフィックと信頼できないトラフィックを共有する接続で圧縮を有効にしないことが推奨されていました。この変更により、Compressionオプションの効果が低下します。ユーザーは、SSHプロトコル上でアプリケーションレベルの圧縮を使用することが推奨されます。これは通常より効果的であり、この種の攻撃に対して完全に耐性があります。 * ssh(1): コマンドラインで入力されたユーザー名で'$'および'\'文字を禁止し、信頼できないソースからのユーザー名がProxyCommand、Match execなど経由でシェルコンテキストにインジェクションされるのを回避します。設定ファイルで指定されたユーザー名は、この制御を受けません。SecBuddyF KeenLab Tencent (CodeBuddy Security) より報告。SSH(1)などのツールのコマンドラインを信頼できない入力に直接公開することは、引き続き推奨されません。このような緩和策は、使用されているシェルの多様性やユーザー構成を考慮すると、絶対的なものではありません。 * ssh-keygen(1): 夏時間(Daylight Saving Time)の変換処理を修正しました。以前の処理では、最大+/-1時間の誤差(南極/トロルタイムゾーンを除く、そこでは+/-2時間)が発生する可能性がありました。これらの誤差により、有効期限が間違った証明書が作成される可能性がありました。bz4004; Khush Patelより。 * sshd(8), ssh(1): 圧縮されたペイロードがサポートされている最大パケット長を超えないようにします。Oleh Konkoより報告。 * sshd(8): authorized_keysの "restrict" キーワードを完全に尊重するようになり、これはトンネル転送(PermitTunnel、デフォルトで無効)に適切に適用されていませんでした。これはopenssh-10.5で修正された問題とは別の問題です。 * sshd(8): "none" を受け付ける一部のオプションを正しく処理します。AuthorizedPrincipalsFileを含む一部のオプションは、無効化する方法として "none" を受け付けると文書化されていましたが、sshd_config(5) のMatchキーワードで上書きされた場合、この引数は誤ってリテラルファイルとして解釈されていました。Chris Rohlf氏とClaudeおよびAnthropic Researchの協力による。 * sshd(8): OS X SDK >= 27では、依存していたAPIが削除され、明確な代替手段が提供されていないため、サンドボックス化はサポートされなくなりました。 * sshd(8): ファイルディスクリプタの受け渡しをサポートせず、PTY割り当てにroot権限を必要とするプラットフォームでは、認証後のsshd-sessionプロセスはroot権限を保持しますが、他のプラットフォームではこのプロセスはログインしたユーザーの権限で実行されます。sshd-sessionが昇格した権限で実行された場合、rootとして特定の操作を実行でき、通常はユーザーに適用される制御(Unixドメインソケット接続の作成や、-R転送経由での低番台TCPポートへのバインディングなど)を回避できました。このため、このリリースではGatewayPortsおよびStreamLocalForwardingオプションが無効になり、これらの(少数の)プラットフォームのサポートは、代替手段が見つからない場合、将来削除されます。