OpenSSH 9.7p1 がリリースされました
2024/03/11, OpenSSH 9.7p1 がリリースされました.
- OpenSSH 9.7 Release Note 中の OpenSSH 9.7 での変更点の翻訳
- この記事にも添付します.
- OpenSSH 移植版付属文書の翻訳
バグ修正中心のリリースです. また今年中に DSA 署名のサポートが無効になりそうです.
2024/03/11, OpenSSH 9.7p1 がリリースされました.
バグ修正中心のリリースです. また今年中に DSA 署名のサポートが無効になりそうです.
OpenSSH 9.7 がリリース準備中です.
バグ修正中心のリリースとなる予定です. DSA の無効化に向けての動きがあります.
https://lists.mindrot.org/pipermail/openssh-unix-dev/2024-March/041181.html
Future deprecation notice
=========================
将来非推奨となる機能の告知
OpenSSH plans to remove support for the DSA signature algorithm in
early 2025 and compile-time disable it later this year.
OpenSSH は 2025年前半に DSA 署名アルゴリズムに対するサポートを除き,
今年(2024)の後半にコンパイル時に無効にすることを計画している.
DSA, as specified in the SSHv2 protocol, is inherently weak - being
limited to a 160 bit private key and use of the SHA1 digest. Its
estimated security level is only 80 bits symmetric equivalent.
SSHv2 プロトコルで指定された DSA は 本質的に弱い - 秘密鍵が 160 bit
に制限されていて SHA1 ハッシュを用いている. 見積もられるセキュリティレベル
は共通鍵暗号の 80 bit しかない.
OpenSSH has disabled DSA keys by default since 2015 but has retained
run-time optional support for them. DSA was the only mandatory-to-
implement algorithm in the SSHv2 RFCs[3], mostly because alternative
algorithms were encumbered by patents when the SSHv2 protocol was
specified.
OpenSSH は 2015 年以降 DSA 鍵をデフォルトで無効にしているが,
ランタイムでの(任意の)サポートは維持している. DSA は,
SSHv2 プロトコルが仕様化された際に代替のアルゴリズムが特許で阻まれていた
ため, SSHv2 RFC[3] 中で実装が必須の唯一のアルゴリズムだ.
This has not been the case for decades at this point and better
algorithms are well supported by all actively-maintained SSH
implementations. We do not consider the costs of maintaining DSA in
OpenSSH to be justified and hope that removing it from OpenSSH can
accelerate its wider deprecation in supporting cryptography
libraries.
現時点では何十年もこのような(特許による障害がある)場合は起こっておらず,
すべての活発に維持されている SSH の実装でよりよいアルゴリズムが
十分にサポートされている. 我々は OpenSSH で DSA を維持するコストが
正当化されるとは考えておらず, OpenSSH から DSA を除くことが
(DSAを) サポートしている暗号ライブラリでのより広い DSA の非推奨への加速
を期待している.
This release makes DSA support in OpenSSH compile-time optional,
defaulting to on. We intend the next release to change the default
to disable DSA at compile time. The first OpenSSH release of 2025
will remove DSA support entirely.
このリリースは OpenSSH の DSA のサポートをコンパイル時に選択可能にする.
デフォルトは有効. 我々は次のリリースでコンパイル時に DSA を無効にするのを
デフォルトにする予定だ. 2025 年の 最初の OpenSSH のリリースで DSA の
サポートを完全に無効にするつもりだ.
Changes since OpenSSH 9.6
=========================
OpenSSH 9.6 からの変更点
This release contains mostly bugfixes.
このリリースは主にバグ修正を含む.
New features
------------
新機能
* ssh(1), sshd(8): add a "global" ChannelTimeout type that watches
all open channels and will close all open channels if there is no
traffic on any of them for the specified interval. This is in
addition to the existing per-channel timeouts added recently.
ssh(1), sshd(8): すべての開いているチャンネルを監視し
指定された間隔でそのすべてについてトラフィックがなかったりら
すべての開いているチャンネルを閉じる "global" ChannelTimeout を
追加する. これは最近追加された既存のチャンネルごとの timeout に
追加される.
This supports situations like having both session and x11
forwarding channels open where one may be idle for an extended
period but the other is actively used. The global timeout could
close both channels when both have been idle for too long.
これはセッションと X11 転送のチャンネルが開かれていて 一方は
長い期間 idle だがもう一方は活発に使われている といった場合を
サポートする. global な timeout は両方が長い間 idle になると
両方を閉じる.
* All: make DSA key support compile-time optional, defaulting to on.
すべて: DSA 鍵のサポートをコンパイル時に選択可能とする. デフォルトは有効.
Bugfixes
--------
バグ修正
* sshd(8): don't append an unnecessary space to the end of subsystem
arguments (bz3667)
sshd(8): サブシステムの引数の最後に不要な空白を追加しない (bz3667)
* ssh(1): fix the multiplexing "channel proxy" mode, broken when
keystroke timing obfuscation was added. (GHPR#463)
ssh(1): 多重化する "channel proxy" モードを修正する.
キーストロークのタイミングの不明瞭化を追加した際に壊れていた.
(GHPR#463)
* ssh(1), sshd(8): fix spurious configuration parsing errors when
options that accept array arguments are overridden (bz3657).
ssh(1), sshd(8): 配列の引数を許容する設定項目が上書きされた場合に
間違った設定のパースを修正する (bz3657)
* Many fixes to manual pages and other documentation, including
GHPR#462, GHPR#454, GHPR#442 and GHPR#441.
GHPR#462 と GHPR#454, GHPR#442, GHPR#441 を含むマニュアルや
他の文書の沢山の修正.
* Greatly improve interop testing against PuTTY.
PuTTY に対する相互運用性テストのすごい改善.
Portability
-----------
移植性
* Improve the error message when the autoconf OpenSSL header check
fails (bz#3668)
autoconf の OpenSSL ヘッダーのチェックに失敗した場合の
エラーメッセージを改善する (bz#3668)
* Improve detection of broken toolchain -fzero-call-used-regs support
(bz3645).
こわれた toolchain の -fzero-call-used-regs サポートの検出を
改善する (bz3645).
* Fix regress/misc/fuzz-harness fuzzers and make them compile without
warnings when using clang16
regress/misc/fuzz-harness fuzzer を修正し, clang16 を利用時のコンパイルで
警告が出ないようにする.
2023/12/18, OpenSSH 9.6p1 がリリースされました.
セキュリティ修正を含むリリースです.
https://www.openssh.com/releasenotes.html#9.6p1
https://twitter.com/sempreff/status/1737072694116647095
でご指摘頂いた誤字を修正しました (2023-12-19 20:35)
Changes since OpenSSH 9.5
=========================
OpenSSH 9.5 からの変更点
This release contains a number of security fixes, some small features
and bugfixes.
このリリースは複数のセキュリティ修正といくつかの小さな機能追加,
バグ修正を含んでいる
Security
========
セキュリティ
This release contains fixes for a newly-discovered weakness in the
SSH transport protocol, a logic error relating to constrained PKCS#11
keys in ssh-agent(1) and countermeasures for programs that invoke
ssh(1) with user or hostnames containing invalid characters.
このリリースは, SSH トランスポートプロトコルで新しく発見された弱点と
ssh-agent(1) での制限された PKCS#11 鍵に関連するロジックエラーに対する
修正と, ユーザーないしホスト名に不正な文字を含む場合に ssh(1) を起動する
プログラムに対する対抗策を含んでいる.
* ssh(1), sshd(8): implement protocol extensions to thwart the
so-called "Terrapin attack" discovered by Fabian Bäumer, Marcus
Brinkmann and Jörg Schwenk. This attack allows a MITM to effect a
limited break of the integrity of the early encrypted SSH transport
protocol by sending extra messages prior to the commencement of
encryption, and deleting an equal number of consecutive messages
immediately after encryption starts. A peer SSH client/server
would not be able to detect that messages were deleted.
ssh(1), sshd(8): Fabian Bäumer と Marcus Brinkmann, Jörg Schwenk
によって発見された いわゆる "Terrapin attack" を妨害する
プロトコル拡張を実装する. この攻撃は, 暗号化の開始の前に余分な
メッセージを送信し暗号化の開始後すぐに同数の連続したメッセージを
削除することで初期の暗号化された SSH トランスポートプロトコルの
完全性を限定的に破ることで MITM を可能にする. SSH
クライアント/サーバー ピアはメッセージが削除されたことを検出できない.
While cryptographically novel, the security impact of this attack
is fortunately very limited as it only allows deletion of
consecutive messages, and deleting most messages at this stage of
the protocol prevents user user authentication from proceeding and
results in a stuck connection.
暗号的には目新しいものだが, この攻撃のセキュリティへの影響は,
幸運なことに非常に限られている.
この攻撃が可能にするのは連続したメッセージの削除のみで, プロトコルの
この段階で多くのメッセージを削除するとユーザー認証が妨害されて
結果として接続はスタックする.
The most serious identified impact is that it lets a MITM to
delete the SSH2_MSG_EXT_INFO message sent before authentication
starts, allowing the attacker to disable a subset of the keystroke
timing obfuscation features introduced in OpenSSH 9.5. There is no
other discernable impact to session secrecy or session integrity.
認識されているもっとも重大な影響は, MITM によって
認証の開始前に送られた SSH2_MSG_EXT_INFO
メッセージが削除されることで,
攻撃者は OpenSSH 9.5 で導入された キーストロークのタイミングを
不明瞭にする特徴を無効にできる.
これはセッションの秘匿性やセッションの完全性に対してそれ以外の
認識できる影響は及ぼさない.
OpenSSH 9.6 addresses this protocol weakness through a new "strict
KEX" protocol extension that will be automatically enabled when
both the client and server support it. This extension makes
two changes to the SSH transport protocol to improve the integrity
of the initial key exchange.
OpenSSH 9.6 は このプロトコルの弱点に対し, 新しい "strict KEX"
プロトコル拡張で対処する. この拡張はクライアントとサーバー両方で
サポートされている場合に自動的に有効になる. この拡張は
最初の鍵交換での完全性を向上する 2 点の変更を SSH トランスポート
プロトコルに適用する.
Firstly, it requires endpoints to terminate the connection if any
unnecessary or unexpected message is received during key exchange
(including messages that were previously legal but not strictly
required like SSH2_MSG_DEBUG). This removes most malleability from
the early protocol.
まず, この拡張は鍵交換中に不要なメッセージや予測されないメッセージを
受け取った場合に接続を終了することを要求する(SSH2_MSG_DEBUG のように
以前は正当であったが厳密には必須ではないメッセージも含む). これにより
以前のプロトコルから多くの柔軟性を除かれる.
Secondly, it resets the Message Authentication Code counter at the
conclusion of each key exchange, preventing previously inserted
messages from being able to make persistent changes to the
sequence number across completion of a key exchange. Either of
these changes should be sufficient to thwart the Terrapin Attack.
次に, この拡張は 鍵交換の完了のたびにメッセージ認証コード(MAC)
をリセットし, 以前はできた鍵交換の完了にまたがったシーケンス番号の
永続的な変更を可能にするメッセージの挿入を防止する. これらの変更
のどちらかがあれば Terrapin 攻撃を妨害するのに十分と考えられる.
More details of these changes are in the PROTOCOL file in the
OpenSSH source distribition.
OpenSSH のソース配布の PROTOCOL ファイルにこれらの変更のより詳細な
記述がある.
* ssh-agent(1): when adding PKCS#11-hosted private keys while
specifying destination constraints, if the PKCS#11 token returned
multiple keys then only the first key had the constraints applied.
Use of regular private keys, FIDO tokens and unconstrained keys
are unaffected.
ssh-agent(1): 転送先の制限を指定された PKCS#11 形式の秘密鍵を
追加する際, PKCS#11 トークンが複数の鍵を返すと, 最初の鍵のみに
制限が適用されていた. 通常の秘密鍵や FIDO トークン, 制限されていない
鍵の利用には影響しない.
* ssh(1): if an invalid user or hostname that contained shell
metacharacters was passed to ssh(1), and a ProxyCommand,
LocalCommand directive or "match exec" predicate referenced the
user or hostname via %u, %h or similar expansion token, then
an attacker who could supply arbitrary user/hostnames to ssh(1)
could potentially perform command injection depending on what
quoting was present in the user-supplied ssh_config(5) directive.
ssh(1): シェルのメタ文字を含む不正なユーザー名やホスト名が ssh(1)
や ProxyCommand, LocalCommand 設定項目, ユーザーやホスト名を %u, %h
で参照する "match exec" 述語や同様の展開トークンに渡されると,
任意のユーザー/ホスト名を ssh(1) に適用できる攻撃者は潜在的に
ユーザーが提供する ssh_config(5) の設定項目にある引用を利用して
コマンドインジェクションを実行できる.
This situation could arise in the case of git submodules, where
a repository could contain a submodule with shell characters in
its user/hostname. Git does not ban shell metacharacters in user
or host names when checking out repositories from untrusted
sources.
この状況は git レポジトリがそのユーザー/ホスト名にシェル文字を含む
submodule を持つ場合に発生しうる. git は信頼していないソースから
レポジトリをチェックアウトする際ユーザーやホスト名でのシェル
メタ文字を禁止していない.
Although we believe it is the user's responsibility to ensure
validity of arguments passed to ssh(1), especially across a
security boundary such as the git example above, OpenSSH 9.6 now
bans most shell metacharacters from user and hostnames supplied
via the command-line. This countermeasure is not guaranteed to be
effective in all situations, as it is infeasible for ssh(1) to
universally filter shell metacharacters potentially relevant to
user-supplied commands.
ssh(1) に渡す引数の正当性を検証するのはユーザーの責任であると
我々は考えているが,
(特に前出の git の例でのセキュリティ境界を越える場合などでは)
OpenSSH 9.6ではコマンドラインから提供されるユーザー/ホスト名について
ほとんどのシェルメタ文字を禁止する. この対抗策はすべての場合に
ついて効果があるとは保証されない.
ユーザーが提供するコマンドに関連しうるシェルメタ文字を例外なくフィルター
することは ssh(1) には不可能だからだ.
User/hostnames provided via ssh_config(5) are not subject to these
restrictions, allowing configurations that use strange names to
continue to be used, under the assumption that the user knows what
they are doing in their own configuration files.
ssh_config(5) で提供されるユーザー/ホスト名はこれらの制限の対象外で,
ユーザーは自身の設定ファイルで行なわれていることを知っているという仮定に基づき
設定では奇妙な名前を引き続き利用可能だ.
Potentially incompatible changes
--------------------------------
潜在的に非互換な変更
* ssh(1), sshd(8): the RFC4254 connection/channels protocol provides
a TCP-like window mechanism that limits the amount of data that
can be sent without acceptance from the peer. In cases where this
limit was exceeded by a non-conforming peer SSH implementation,
ssh(1)/sshd(8) previously discarded the extra data. From OpenSSH
9.6, ssh(1)/sshd(8) will now terminate the connection if a peer
exceeds the window limit by more than a small grace factor. This
change should have no effect of SSH implementations that follow
the specification.
ssh(1), sshd(8): RFC4254 接続/チャンネルプロトコルはピアからの
受諾なしに送信できるデータ量を制限する TCP 的な window 機構を
提供する. 不適格なピアの SSH 実装がこの制限を越える場合,
ssh(1)/sshd(8) はこれまで余分なデータを捨てていた. OpenSSH 9.6
からは, ピアがすこしの慈悲の要素を越えて window の制限を越えてきたら,
ssh(1)/sshd(8) は接続を終了する. この変更は仕様に従う SSH の実装には
影響がないはずだ.
New features
------------
新機能
* ssh(1): add a %j token that expands to the configured ProxyJump
hostname (or the empty string if this option is not being used)
that can be used in a number of ssh_config(5) keywords. bz3610
ssh(1): ssh_config(5) のキーワードとして利用できる
設定された ProxyJump ホスト名
(ないしこのオプションが設定されていなければ空文字列)を展開する %j
トークンを追加する.
* ssh(1): add ChannelTimeout support to the client, mirroring the
same option in the server and allowing ssh(1) to terminate
quiescent channels.
ssh(1): ChannelTimeout サポートをクライアントに追加する.
サーバー側の同じオプションに対応するもので, ssh(1) が
利用されていないチャンネルを停止できる.
* ssh(1), sshd(8), ssh-add(1), ssh-keygen(1): add support for
reading ED25519 private keys in PEM PKCS8 format. Previously
only the OpenSSH private key format was supported.
ssh(1), sshd(8), ssh-add(1), ssh-keygen(1): PEM PKCS8 形式の
ED25519 秘密鍵の読み取りのサポートを追加する. 以前は
OpenSSH 秘密鍵形式のみをサポートしていた.
* ssh(1), sshd(8): introduce a protocol extension to allow
renegotiation of acceptable signature algorithms for public key
authentication after the server has learned the username being
used for authentication. This allows varying sshd_config(5)
PubkeyAcceptedAlgorithms in a "Match user" block.
ssh(1), sshd(8): サーバーが認証で使われたユーザー名を認識したあとで
公開鍵認証で受け入れる署名のアルゴリズムを再交渉できるプロトコル
拡張を導入する. これにより, sshd_config(5) の "Match user" ブロックで
PubkeyAcceptedAlgorithms を可変にできる.
* ssh-add(1), ssh-agent(1): add an agent protocol extension to allow
specifying certificates when loading PKCS#11 keys. This allows the
use of certificates backed by PKCS#11 private keys in all OpenSSH
tools that support ssh-agent(1). Previously only ssh(1) supported
this use-case.
ssh-add(1), ssh-agent(1): PKCS#11 鍵のロードの際に証明書を指定できる
エージェントプロトコルの拡張を追加する. ssh-agent(1) をサポートする
すべての OpenSSH ツールで PKCS#11
秘密鍵を使う証明書の利用を可能にする
以前は ssh(1) のみがこのユースケースをサポートしていた.
Bugfixes
--------
バグ修正
* ssh(1): when deciding whether to enable the keystroke timing
obfuscation, enable it only if a channel with a TTY is active.
ssh(1): キーストロークのタイミングの不明瞭化を有効にするかを
決定する際に, TTY が有効なチャンネルのみで有効にする.
* ssh(1): switch mainloop from poll(3) to ppoll(3) and mask signals
before checking flags set in signal handler. Avoids potential
race condition between signaling ssh to exit and polling. bz3531
ssh(1): メインループを poll(3) から ppoll(3) に変更し,
シグナルハンドラーで設定されるフラグをチェックする前にシグナルを
マスクする. ssh へのシグナルでの終了とポーリング間でありえた
レースコンディションを避ける. bz3531
* ssh(1): when connecting to a destination with both the
AddressFamily and CanonicalizeHostname directives in use,
the AddressFamily directive could be ignored. bz5326
ssh(1): AddressFamily と CanonicalizeHostname 設定項目の両方が
設定されている接続先に接続する際 AddressFamily が無視される
bz5326(訳注: bz3526 が正しい)
* sftp(1): correct handling of the limits@openssh.com option when
the server returned an unexpected message.
sftp(1): サーバーが予期せぬメッセージを返した場合の
limits@openssh.com の扱いを修正する.
* A number of fixes to the PuTTY and Dropbear regress/integration
tests.
PuTTY と Dropbear の回帰/結合テストを多数修正
* ssh(1): release GSS OIDs only at end of authentication, avoiding
unnecessary init/cleanup cycles. bz2982
ssh(1): 認証の最後にのみ GSS OID を解放する.
不要な初期化/クリーンアップサイクルを行なわないようにするため.
bz2982
* ssh_config(5): mention "none" is a valid argument to IdentityFile
in the manual. bz3080
ssh_config(5): マニュアルでの IdentityFile の正当な引数として
"none" を記述する. bz3080
* scp(1): improved debugging for paths from the server rejected for
not matching the client's glob(3) pattern in old SCP/RCP protocol
mode.
scp(1): 古い SCP/RCP プロトコルモードでのクライアントの glob(3)
パターンにマッチしないためにサーバーから拒否されたパスの
デバッグを改良する.
* ssh-agent(1): refuse signing operations on destination-constrained
keys if a previous session-bind operation has failed. This may
prevent a fail-open situation in future if a user uses a mismatched
ssh(1) client and ssh-agent(1) where the client supports a key type
that the agent does not support.
ssh-agent(1): 以前のセッションに束縛された操作が失敗した場合,
接続先が制限された鍵での署名操作を拒否する.
エージェントがサポートしていない鍵のタイプをクライアントがサポートしている
バージョンが一致しない ssh(1) と ssh-agent(1) をユーザーが利用する場合に
fail-open を防ぐことができる.
Portability
-----------
移植性
* Better identify unsupported and unstable compiler flags, such as
-fzero-call-used-regs which has been unstable across a several
clang releases.
サポートされていないかつ不安定なコンパイラのフラグを識別しやすくした.
いくつかの clang のリリースで不安定となっている
-fzero-call-used-regs など.
* A number of fixes to regression test reliability and log
collection.
回帰テストの信頼性とログの回収での多くの修正
* Update the OpenSSL dependency in the RPM specification.
RPM 仕様での OpenSSL 依存性を更新する
* sshd(8): for OpenSolaris systems that support privilege limitation
via the getpflags() interface, prefer using the newer PRIV_XPOLICY
to PRIV_LIMIT. bz2833
sshd(8): OpenSolaris システムで getpflags()
インターフェイスを利用する特権制限をサポートする.
PRIV_LIMIT よりも より新しい PRIV_XPOLICY を利用する .
2023/10/04, OpenSSH 9.5p1 がリリースされました.
バグ修正中心で少し新機能があるリリースです. ObscureKeystrokeTiming は興味深いですね.
2023/08/10, OpenSSH 9.4p1 がリリースされました.
バグ修正中心のリリースです.
https://www.openssh.com/releasenotes.html#9.4p1
Changes since OpenSSH 9.3p2
===========================
OpenSSH 9.3p2 からの変更点
This release fixes a number of bugs and adds some small features.
このリリースは多数のバグを修正しいくつかの小さい特徴を追加する.
Potentially incompatible changes
--------------------------------
潜在的に非互換の変更点
* This release removes support for older versions of libcrypto.
OpenSSH now requires LibreSSL >= 3.1.0 or OpenSSL >= 1.1.1.
Note that these versions are already deprecated by their upstream
vendors.
このリリースは libcrypto の古いバージョンのサポートを除く.
OpenSSH は LibreSSL >= 3.1.0 か OpenSSL >= 1.1.1 を必要とする.
除かれたバージョンは, それぞれの上流のベンダーによって既に
非推奨となっている点に注意.
* ssh-agent(1): PKCS#11 modules must now be specified by their full
paths. Previously dlopen(3) could search for them in system
library directories.
ssh-agent(1): PKCS#11 モジュールは, そのフルパスによって指定され
なければならなくなる. 以前は dlopen(3) はシステムのライブラリ
ディレクトリ中のモジュールを検索できた.
New features
------------
新機能
* ssh(1): allow forwarding Unix Domain sockets via ssh -W.
ssh(1): ssh -W によって Unix ドメインソケットの転送が
できる.
* ssh(1): add support for configuration tags to ssh(1).
This adds a ssh_config(5) "Tag" directive and corresponding
"Match tag" predicate that may be used to select blocks of
configuration similar to the pf.conf(5) keywords of the same
name.
ssh(1): ssh(1) に対する設定タグのサポートを追加する.
同じ名前の pf.conf(5) と同様の設定のブロックを用いるのに
利用できる ssh_config(5) の "Tag" 設定項目と関連する
"Match tag" 述語を追加する.
* ssh(1): add a "match localnetwork" predicate. This allows matching
on the addresses of available network interfaces and may be used to
vary the effective client configuration based on network location.
"match localnetwork" 述語を追加する. ネットワークロケーション
に基づく効率的なクライアント設定の変更のために利用できる
利用可能なネットワークインターフェイスのアドレスのマッチングを
可能にする.
* ssh(1), sshd(8), ssh-keygen(1): infrastructure support for KRL
extensions. This defines wire formats for optional KRL extensions
and implements parsing of the new submessages. No actual extensions
are supported at this point.
ssh(1), sshd(8), ssh-keygen(1): KRL 拡張の基盤サポート. 選択可能な
KRL 拡張の通信フォーマットを定義し, 新しいサブメッセージのパースを
実装する. 現時点では実際の拡張はサポートされていない.
* sshd(8): AuthorizedPrincipalsCommand and AuthorizedKeysCommand now
accept two additional %-expansion sequences: %D which expands to
the routing domain of the connected session and %C which expands
to the addresses and port numbers for the source and destination
of the connection.
sshd(8): AuthorizedPrincipalsCommand と AuthorizedKeysCommand が
2 つの追加の %-拡張シーケンスを受けつける: %D は接続セッションの
ルーティングドメインに展開される. %C は 接続元/先のアドレスとポート
番号に展開される.
* ssh-keygen(1): increase the default work factor (rounds) for the
bcrypt KDF used to derive symmetric encryption keys for passphrase
protected key files by 50%.
ssh-keygen(1): パスフレーズで保護される鍵の共通暗号鍵を導出
するのに用いられる bcrypt KDF のデフォルトの work factor (ラウンド)
を 50% 増やす.
Bugfixes
--------
バグ修正
* ssh-agent(1): improve isolation between loaded PKCS#11 modules
by running separate ssh-pkcs11-helpers for each loaded provider.
ssh-agent(1): それぞれのロードされたプロバイダごとに
別々の ssh-pkcs11-helpers を実行することで ロードされた PKCS#11
モジュール間の分離を改善する.
* ssh(1): make -f (fork after authentication) work correctly with
multiplexed connections, including ControlPersist. bz3589 bz3589
ssh(1): -f (認証後の fork) がControlPersist を含む多重化された接続で
正しく動作する. bz3589
* ssh(1): make ConnectTimeout apply to multiplexing sockets and not
just to network connections.
ssh(1): ConnectTimeout を ネットワーク接続にではなく
多重化されたソケットへ適用させる.
* ssh-agent(1), ssh(1): improve defences against invalid PKCS#11
modules being loaded by checking that the requested module
contains the required symbol before loading it.
ssh-agent(1), ssh(1): ロード前に必要なシンボルを含む要求された
モジュールかをチェックしてロードするようにして
不正な PKCS#11 モジュールに対する防御を改善する.
* sshd(8): fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand
appears before it in sshd_config. Since OpenSSH 8.7 the
AuthorizedPrincipalsCommand directive was incorrectly ignored in
this situation. bz3574
sshd(8): sshd_config で AuthorizedKeysCommand が
AuthorizedPrincipalsCommand より前に出現する場合の AuthorizedPrincipalsCommand
を修正する. OpenSSH 8.7 より この状況では AuthorizedPrincipalsCommand
設定項目は不正に無視されていた. bz3574
* sshd(8), ssh(1), ssh-keygen(1): remove vestigal support for KRL
signatures When the KRL format was originally defined, it included
support for signing of KRL objects. However, the code to sign KRLs
and verify KRL signatues was never completed in OpenSSH. This
release removes the partially-implemented code to verify KRLs.
All OpenSSH tools now ignore KRL_SECTION_SIGNATURE sections in
KRL files.
sshd(8), ssh(1), ssh-keygen(1): KRL 署名の名残りのサポートを削除する.
KRL フォーマットが元々定義されたとき, KRL オブジェクトの署名の
サポートが含まれていた. しかし, KRL の署名と KRL 署名の検証のコードは
OpenSSH では完了することはなかった. このリリースで KRL を検証する
部分的に実装されたコードを削除する. すべての OpenSSH ツールは
KRL ファイルの KRL_SECTION_SIGNATURE 節を無視する.
* All: fix a number of memory leaks and unreachable/harmless integer
overflows.
All: 多数のメモリリークと到達しない/害のない整数オーバーフローを
修正する.
* ssh-agent(1), ssh(1): don't truncate strings logged from PKCS#11
modules; GHPR406
ssh-agent(1), ssh(1): PKCS#11 モジュールからログされる文字列を
切り詰めない; GHPR406
* sshd(8), ssh(1): better validate CASignatureAlgorithms in
ssh_config and sshd_config. Previously this directive would accept
certificate algorithm names, but these were unusable in practice as
OpenSSH does not support CA chains. bz3577
sshd(8), ssh(1): ssh_config と sshd_config での CASignatureAlgorithms
の検証を改善する. 以前はこの設定項目は証明書のアルゴリズム名を
受け付けていたが, OpenSSH が CA チェーンをサポートしていない場合
実際には不安定だった. bz3577
* ssh(1): make `ssh -Q CASignatureAlgorithms` only list signature
algorithms that are valid for CA signing. Previous behaviour was
to list all signing algorithms, including certificate algorithms.
ssh(1): `ssh -Q CASignatureAlgorithms` は CA 署名で正当な
アルゴリズムのみを列挙するようになる. 以前の動作は,
証明書のアルゴリズムを含むすべての署名アルゴリズムを列挙していた.
* ssh-keyscan(1): gracefully handle systems where rlimits or the
maximum number of open files is larger than INT_MAX; bz3581
ssh-keyscan(1): INT_MAX よりも大きな rlimits や ファイルの最大
オープン数のシステムを慈悲深く取り扱う; bz3581
* ssh-keygen(1): fix "no comment" not showing on when running
`ssh-keygen -l` on multiple keys where one has a comment and other
following keys do not. bz3580
ssh-keygen(1): 1つはコメントを持ちそれ以外の続く鍵が持たない場合に
複数の鍵に対する `ssh-keygen -l` を実行した再に "no comment" が
表示されないのを修正する. bz3580
* scp(1), sftp(1): adjust ftruncate() logic to handle servers that
reorder requests. Previously, if the server reordered requests then
the resultant file would be erroneously truncated.
scp(1), sftp(1): リクエストを再送するサーバを扱う ftruncate() ロジック
を調整する. 以前は, サーバがリクエストを再送信すると結果のファイルは
誤って切り詰められていた.
* ssh(1): don't incorrectly disable hostname canonicalization when
CanonicalizeHostname=yes and ProxyJump was expicitly set to
"none". bz3567
ssh(1): CanonicalizeHostname=yes で ProxyJump が明示的に "none" に
設定されている場合, ホスト名の正規化を誤って無効にしないようにする.
bz3567
* scp(1): when copying local->remote, check that the source file
exists before opening an SFTP connection to the server. Based on
GHPR#370
scp(1): ローカルからリモートに転送する再, サーバに SFTP 接続を
する前に ソースファイルが存在するか検査する. GHPR#370 をベースに
している.
Portability
-----------
移植性
* All: a number of build fixes for various platforms and
configuration combinations.
All: 様々なプラットフォームと設定の組合せで多数のビルドの問題を
修正.
* sshd(8): provide a replacement for the SELinux matchpathcon()
function, which is deprecated.
sshd(8): 非推奨となった SELinux matchpathcon() 関数の
代替を提供する.
* All: relax libcrypto version checks for OpenSSL >=3. Beyond
OpenSSL 3.0, the ABI compatibility guarantees are wider (only
the library major must match instead of major and minor in
earlier versions). bz#3548.
OpenSSL >= 3 での libcrypto バージョンチェックを緩和する
OpenSSL 3.0 より先では, ABI の互換性保証はより拡大している
(以前のバージョンでは, ライブラリのメジャーバージョンのみが
一致しなければならなかった. 現在は メジャーとマイナーが一致しな
ければならない). bz#3548
* Tests: fix build problems for the sk-dummy.so FIDO provider module
used in some tests.
テスト: いくつかのテストで用いられる sk-dummy.so FIDO プロバイダ
のビルドの問題を修正する.
OpenSSH 9.4 がリリース準備中です.
https://lists.mindrot.org/pipermail/openssh-unix-dev/2023-July/040872.html
Changes since OpenSSH 9.3p2
===========================
OpenSSH 9.3p2 からの変更点
This release fixes a number of bugs and adds some small features.
このリリースは多数のバグを修正しいくつかの小さい特徴を追加する.
Potentially incompatible changes
--------------------------------
潜在的に非互換の変更点
* This release removes support for older versions of libcrypto.
OpenSSH now requires LibreSSL >= 3.1.0 or OpenSSL >= 1.1.1.
Note that these versions are already deprecated by their upstream
vendors.
このリリースは libcrypto の古いバージョンのサポートを除く.
OpenSSH は LibreSSL >= 3.1.0 か OpenSSL >= 1.1.1 を必要とする.
除かれたバージョンは, それぞれの上流のベンダーによって既に
非推奨となっている点に注意.
* ssh-agent(1): PKCS#11 modules must now be specified by their full
paths. Previously dlopen(3) could search for them in system
library directories.
ssh-agent(1): PKCS#11 モジュールは, そのフルパスによって指定され
なければならなくなる. 以前は dlopen(3) はシステムのライブラリ
ディレクトリ中のモジュールを検索できた.
New features
------------
新機能
* ssh(1): allow forwarding Unix Domain sockets via ssh -W.
ssh(1): ssh -W によって Unix ドメインソケットの転送が
できる.
* ssh(1): add support for configuration tags to ssh(1).
This adds a ssh_config(5) "Tag" directive and corresponding
"Match tag" predicate that may be used to select blocks of
configuration similar to the pf.conf(5) keywords of the same
name.
ssh(1): ssh(1) に対する設定タグのサポートを追加する.
同じ名前の pf.conf(5) と同様の設定のブロックを用いるのに
利用できる ssh_config(5) の "Tag" 設定項目と関連する
"Match tag" 述語を追加する.
* ssh(1): add a "match localnetwork" predicate. This allows matching
on the addresses of available network interfaces and may be used to
vary the effective client configuration based on network location.
"match localnetwork" 述語を追加する. ネットワークロケーション
に基づく効率的なクライアント設定の変更のために利用できる
利用可能なネットワークインターフェイスのアドレスのマッチングを
可能にする.
* ssh(1), sshd(8), ssh-keygen(1): infrastructure support for KRL
extensions. This defines wire formats for optional KRL extensions
and implements parsing of the new submessages. No actual extensions
are supported at this point.
ssh(1), sshd(8), ssh-keygen(1): KRL 拡張の基盤サポート. 選択可能な
KRL 拡張の通信フォーマットを定義し, 新しいサブメッセージのパースを
実装する. 現時点では実際の拡張はサポートされていない.
* sshd(8): AuthorizedPrincipalsCommand and AuthorizedKeysCommand now
accept two additional %-expansion sequences: %D which expands to
the routing domain of the connected session and %C which expands
to the addresses and port numbers for the source and destination
of the connection.
sshd(8): AuthorizedPrincipalsCommand と AuthorizedKeysCommand が
2 つの追加の %-拡張シーケンスを受けつける: %D は接続セッションの
ルーティングドメインに展開される. %C は 接続元/先のアドレスとポート
番号に展開される.
* ssh-keygen(1): increase the default work factor (rounds) for the
bcrypt KDF used to derive symmetric encryption keys for passphrase
protected key files by 50%.
ssh-keygen(1): パスフレーズで保護される鍵の共通暗号鍵を導出
するのに用いられる bcrypt KDF のデフォルトの work factor (ラウンド)
を 50% 増やす.
Bugfixes
--------
バグ修正
* ssh-agent(1): improve isolation between loaded PKCS#11 modules
by running seperate ssh-pkcs11-helpers for each loaded provider.
ssh-agent(1): それぞれのロードされたプロバイダごとに
別々の ssh-pkcs11-helpers を実行することで ロードされた PKCS#11
モジュール間の分離を改善する.
* ssh(1): make -f (fork after authentication) work correctly with
multiplexed connections, including ControlPersist. bz3589 bz3589
ssh(1): -f (認証後の fork) がControlPersist を含む多重化された接続で
正しく動作する. bz3589
* ssh-agent(1), ssh(1): improve defences against invalid PKCS#11
modules being loaded by checking that the requested module
contains the required symbol before loading it.
ssh-agent(1), ssh(1): ロード前に必要なシンボルを含む要求された
モジュールかをチェックしてロードするようにして
不正な PKCS#11 モジュールに対する防御を改善する.
* sshd(8): fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand
appears before it in sshd_config. Since OpenSSH 8.7 the
AuthorizedPrincipalsCommand directive was incorrectly ignored in
this situation. bz3574
sshd(8): sshd_config で AuthorizedKeysCommand が
AuthorizedPrincipalsCommand より前に出現する場合の AuthorizedPrincipalsCommand
を修正する. OpenSSH 8.7 より この状況では AuthorizedPrincipalsCommand
設定項目は不正に無視されていた. bz3574
* sshd(8), ssh(1), ssh-keygen(1): remove vestigal support for KRL
signatures When the KRL format was originally defined, it included
support for signing of KRL objects. However, the code to sign KRLs
and verify KRL signatues was never completed in OpenSSH. This
release removes the partially-implemented code to verify KRLs.
All OpenSSH tools now ignore KRL_SECTION_SIGNATURE sections in
KRL files.
sshd(8), ssh(1), ssh-keygen(1): KRL 署名の名残りのサポートを削除する.
KRL フォーマットが元々定義されたとき, KRL オブジェクトの署名の
サポートが含まれていた. しかし, KRL の署名と KRL 署名の検証のコードは
OpenSSH では完了することはなかった. このリリースで KRL を検証する
部分的に実装されたコードを削除する. すべての OpenSSH ツールは
KRL ファイルの KRL_SECTION_SIGNATURE 節を無視する.
* All: fix a number of memory leaks and unreachable/harmless integer
overflows.
All: 多数のメモリリークと到達しない/害のない整数オーバーフローを
修正する.
* ssh-agent(1), ssh(1): don't truncate strings logged from PKCS#11
modules; GHPR406
ssh-agent(1), ssh(1): PKCS#11 モジュールからログされる文字列を
切り詰めない; GHPR406
* sshd(8), ssh(1): better validate CASignatureAlgorithms in
ssh_config and sshd_config. Previously this directive would accept
certificate algorithm names, but these were unusable in practice as
OpenSSH does not support CA chains. bz3577
sshd(8), ssh(1): ssh_config と sshd_config での CASignatureAlgorithms
の検証を改善する. 以前はこの設定項目は証明書のアルゴリズム名を
受け付けていたが, OpenSSH が CA チェーンをサポートしていない場合
実際には不安定だった. bz3577
* ssh(1): make `ssh -Q CASignatureAlgorithms` only list signature
algorithms that are valid for CA signing. Previous behaviour was
to list all signing algorithms, including certificate algorithms.
ssh(1): `ssh -Q CASignatureAlgorithms` は CA 署名で正当な
アルゴリズムのみを列挙するようになる. 以前の動作は,
証明書のアルゴリズムを含むすべての署名アルゴリズムを列挙していた.
* ssh-keyscan(1): gracefully handle systems where rlimits or the
maximum number of open files is larger than INT_MAX; bz3581
ssh-keyscan(1): INT_MAX よりも大きな rlimits や ファイルの最大
オープン数のシステムを慈悲深く取り扱う; bz3581
* ssh-keygen(1): fix "no comment" not showing on when running
`ssh-keygen -l` on multiple keys where one has a comment and other
following keys do not. bz3580
ssh-keygen(1): 1つはコメントを持ちそれ以外の続く鍵が持たない場合に
複数の鍵に対する `ssh-keygen -l` を実行した再に "no comment" が
表示されないのを修正する. bz3580
* scp(1), sftp(1): adjust ftruncate() logic to handle servers that
reorder requests. Previously, if the server reordered requests then
the resultant file would be erroneously truncated.
scp(1), sftp(1): リクエストを再送するサーバを扱う ftruncate() ロジック
を調整する. 以前は, サーバがリクエストを再送信すると結果のファイルは
誤って切り詰められていた.
* ssh(1): don't incorrectly disable hostname canonicalization when
CanonicalizeHostname=yes and ProxyJump was expicitly set to
"none". bz3567
ssh(1): CanonicalizeHostname=yes で ProxyJump が明示的に "none" に
設定されている場合, ホスト名の正規化を誤って無効にしないようにする.
bz3567
* scp(1): when copying local->remote, check that the source file
exists before opening an SFTP connection to the server. Based on
GHPR#370
scp(1): ローカルからリモートに転送する再, サーバに SFTP 接続を
する前に ソースファイルが存在するか検査する. GHPR#370 をベースに
している.
Portability
-----------
移植性
* All: a number of build fixes for various platforms and
configuration combinations.
All: 様々なプラットフォームと設定の組合せで多数のビルドの問題を
修正.
* sshd(8): provide a replacement for the SELinux matchpathcon()
function, which is deprecated.
sshd(8): 非推奨となった SELinux matchpathcon() 関数の
代替を提供する.
* All: relax libcrypto version checks for OpenSSL >=3. Beyond
OpenSSL 3.0, the ABI compatibility guarantees are wider (only
the library major must match instead of major and minor in
earlier versions). bz#3548.
OpenSSL >= 3 での libcrypto バージョンチェックを緩和する
OpenSSL 3.0 より先では, ABI の互換性保証はより拡大している
(以前のバージョンでは, ライブラリのメジャーバージョンのみが
一致しなければならなかった. 現在は メジャーとマイナーが一致しな
ければならない). bz#3548
* Tests: fix build problems for the sk-dummy.so FIDO provider module
used in some tests.
テスト: いくつかのテストで用いられる sk-dummy.so FIDO プロバイダ
のビルドの問題を修正する.
2023/07/19, OpenSSH 9.3p2 がリリースされました.
セキュリティバグの修正のリリースです.
# https://www.openssh.com/releasenotes.html#9.3p2
Changes since OpenSSH 9.3
=========================
OpenSSH 9.3 からの変更点
This release fixes a security bug.
このリリースはセキュリティのバグを修正する.
Security
========
セキュリティ
Fix CVE-2023-38408 - a condition where specific libaries loaded via
ssh-agent(1)'s PKCS#11 support could be abused to achieve remote
code execution via a forwarded agent socket if the following
conditions are met:
CVE-2023-38408 - ssh-agent(1) の PKCS#11 サポートによって
ロードされる特定のライブラリが, 次の場合に, 転送された
エージェントのソケットを介してリモートでのコード実行するのに
悪用される可能性がある状況を修正する.
* Exploitation requires the presence of specific libraries on
the victim system.
* Remote exploitation requires that the agent was forwarded
to an attacker-controlled system.
* 悪用には被害を受けるシステム上に特定のライブラリが必要
* リモートでの悪用には, 攻撃者が管理するシステムへのエージェントの
転送が必要
Exploitation can also be prevented by starting ssh-agent(1) with an
empty PKCS#11/FIDO allowlist (ssh-agent -P '') or by configuring
an allowlist that contains only specific provider libraries.
悪用は, ssh-agent(1) を 空の PKCS#11/FIDO 許可リスト (ssh-agent -P '')
で起動したり, 特定のプロバイダのライブラリのみを含む許可リストを設定
することでも防げる.
This vulnerability was discovered and demonstrated to be exploitable
by the Qualys Security Advisory team.
この脆弱性は Qualys Security Advisory team によって発見され,
悪用可能なことが示された.
In addition to removing the main precondition for exploitation,
this release removes the ability for remote ssh-agent(1) clients
to load PKCS#11 modules by default (see below).
悪用の主要な事前条件を除くのに加えて, このリリースは
リモートの ssh-agent(1) のクライアントが PKCS#11リモートモジュールを
ロードする機能をデフォルトで無効にする (次を参照).
Potentially-incompatible changes
--------------------------------
潜在的に非互換な変更
* ssh-agent(8): the agent will now refuse requests to load PKCS#11
modules issued by remote clients by default. A flag has been added
to restore the previous behaviour "-Oallow-remote-pkcs11".
ssh-agent(8): エージェントはデフォルトでリモートのクライアントから
発行された PKCS#11 モジュールのロードの要求を拒否する.
以前の動作を回復するための "-Oallow-remote-pkcs11" フラグが
追加される.
Note that ssh-agent(8) depends on the SSH client to identify
requests that are remote. The OpenSSH >=8.9 ssh(1) client does
this, but forwarding access to an agent socket using other tools
may circumvent this restriction.
ssh-agent(8) はリモートからの要求を識別するのに SSH クライアントに
依存していることに注意. OpenSSH >= 8.9 の ssh(1) クライアントは
これを行なうが, 他のツールを用いたエージェントソケットへの転送アクセス
はこの制限を回避するかもしれない.
2023/03/15, OpenSSH 9.3 がリリースされました.
セキュリティバグの修正のあるリリースです. ただし影響は限定的に見えます.
OpenSSH 9.3 がリリース準備中です.
いまのところは大きな変化がないリリースとなりそうです.
# 暫定版: https://lists.mindrot.org/pipermail/openssh-unix-dev/2023-March/040628.html
Changes since OpenSSH 9.2
=========================
OpenSSH 9.2 からの変更点
New features
------------
新機能
* ssh-keygen(1), ssh-keyscan(1): accept -Ohashalg=sha1|sha256 when
outputting SSHFP fingerprints to allow algorithm selection. bz3493
ssh-keygen(1), ssh-keyscan(1): アルゴリズムの選択を許すため
SSHFP 指紋の出力時に -Ohashalg で sha1 か sha256 を許可する. bz3493
(デフォルトでは両方出力される)
* sshd(8): add a `sshd -G` option that parses and prints the
effective configuration without attempting to load private keys
and perform other checks. This allows usage of the option before
keys have been generated and for configuration evaluation and
verification by unprivileged users.
sshd(8): `sshd -G` オプションを追加する. これは, 秘密鍵のロードや
他のチェックの実行なしで有効な設定をパースし出力する.
鍵が生成される前や, 設定の評価, 非特権ユーザによる検証に
このオプションは利用できる.
Bugfixes
--------
バグ修正
* scp(1), sftp(1): fix progressmeter corruption on wide displays;
bz3534
scp(1), sftp(1): 広いディスプレイでのプログレスメーターの問題を修正
bz3534
* ssh-add(1), ssh-keygen(1): use RSA/SHA256 when testing usability
of private keys as some systems are starting to disable RSA/SHA1
in libcrypto.
ssh-add(1), ssh-keygen(1): 一部のシステムで libcrypto の RSA/SHA1
が無効化され始めているので, 秘密鍵の利用可能性のテストに
RSA/SHA256 を利用する.
* sftp-server(8): fix a memory leak. GHPR363
sftp-server(8): メモリリークを修正する. GHPR363
* ssh(1), sshd(8), ssh-keyscan(1): remove vestigal protocol
compatibility code and simplify what's left.
ssh(1), sshd(8), ssh-keyscan(1): 名残りで残っていたプロトコル
互換性コードを除去し, 残ったものを単純化する.
* Fix a number of low-impact Coverity static analysis findings.
Coverity 静的解析探索で見付かった低インパクトの問題を
いくつか修正する.
* ssh_config(5), sshd_config(5): mention that some options are not
first-match-wins.
ssh_config(5), sshd_config(5): 一部のオプションは最初にマッチしたものが
使われるわけではないことを言及する.
* Rework logging for the regression tests. Regression tests will now
capture separate logs for each ssh and sshd invocation in a test.
再帰テストのログを再度動くようにする. 再帰テストは今やテストでの
それぞれの ssh と sshd の工藤で別々のログを捕捉するようになる.
* ssh(1): make `ssh -Q CASignatureAlgorithms` work as the manpage
says it should; bz3532.
ssh(1): `ssh -Q CASignatureAlgorithms` を man にあるように動くように
する; bz3532
* ssh(1): ensure that there is a terminating newline when adding a
new entry to known_hosts; bz3529
ssh(1): known_hosts に新しいエントリを追加する際, 終端の改行がある
のを保証する; bz3529
Portability
-----------
移植性
* sshd(8): harden Linux seccomp sandbox. Move to an allowlist of
mmap(2), madvise(2) and futex(2) flags, removing some concerning
kernel attack surface.
sshd(8): Linux の seccomp サンドボックスを教科する.
mmap(2) と madvise(2), futex(2) フラグの許可リストへ移動し,
いくつかの関連するカーネル攻撃の対象を除去する.
* sshd(8): improve Linux seccomp-bpf sandbox for older systems;
bz3537
sshd(8): 古いシステムに対する seccomp-bpf サンドボックスを
改善する; bz3537
2023/02/02, OpenSSH 9.2 がリリースされました.
バグ修正中心のリリースです. おそらく悪用できないと思われるメモリ安全に関する問題が 3 件修正されています.