OpenSSH 9.1 がリリースされました
2022/10/04, OpenSSH 9.1 がリリースされました.
- OpenSSH 9.1 Release Note 中の OpenSSH 9.1 での変更点の翻訳
- この記事にも添付します.
- OpenSSH 移植版付属文書の翻訳
バグ修正中心のリリースです. おそらく悪用できないと思われるメモリ安全に関する問題が 3 件修正されています.
https://www.openssh.com/releasenotes.html#9.1
Changes since OpenSSH 9.0
=========================
OpenSSH 9.0 からの変更
This release is focused on bug fixing.
このリリースはバグ修正に集中している.
Security
========
セキュリティ
This release contains fixes for three minor memory safety problems.
None are believed to be exploitable, but we report most memory safety
problems as potential security vulnerabilities out of caution.
このリリースは 3 つのマイナーなメモリ安全の問題の修正を含んでいる.
どれも悪用可能ではないと考えられているが, たいていのメモリ安全の
問題は潜在的なセキュリティ脆弱性として要注意とレポートする.
* ssh-keyscan(1): fix a one-byte overflow in SSH- banner processing.
Reported by Qualys
ssh-keyscan(1): SSH- バナーの処理での 1 byte のオーバーフローを修正する.
Qualys によって報告された.
* ssh-keygen(1): double free() in error path of file hashing step in
signing/verify code; GHPR333
ssh-keygen(1): 署名/検証コードでファイルをハッシュするステップでの
エラーパスにある二重 free(); GHPR333
* ssh-keysign(8): double-free in error path introduced in openssh-8.9
ssh-keysign(3): openssh-8.9 で導入してしまったエラーパスでの二重 free
Potentially-incompatible changes
--------------------------------
潜在的に非互換の変更
* The portable OpenSSH project now signs commits and release tags
using git's recent SSH signature support. The list of developer
signing keys is included in the repository as .git_allowed_signers
and is cross-signed using the PGP key that is still used to sign
release artifacts:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc
移植版 OpenSSH プロジェクトは, git の最近の SSH 署名サポートを
用いて 今後 commit と release tag に署名する. 開発者の署名鍵の
リストは レポジトリに .git_allowed_signers として含まれ,
リリース に署名するのにまだ用いられている PGP 鍵を用いて
クロス署名されている:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc
* ssh(1), sshd(8): SetEnv directives in ssh_config and sshd_config
are now first-match-wins to match other directives. Previously
if an environment variable was multiply specified the last set
value would have been used. bz3438
ssh(1), sshd(8): ssh_config と sshd_config 中の SetEnv 設定項目
は今後他の設定項目に一致するよう最初の一致が勝つようになる.
以前は複数設定された環境変数は最後に設定された値が用いられていた.
bz3438
* ssh-keygen(8): ssh-keygen -A (generate all default host key types)
will no longer generate DSA keys, as these are insecure and have
not been used by default for some years.
ssh-keygen(8): ssh-keygen -A (すべてのデフォルトホスト鍵のタイプを生成する)
は DSA 鍵を生成しなくなっている. これは安全ではなく数年にわたりデフォルトでは
利用されなくなっている.
New features
------------
新機能
* ssh(1), sshd(8): add a RequiredRSASize directive to set a minimum
RSA key length. Keys below this length will be ignored for user
authentication and for host authentication in sshd(8).
ssh(1), sshd(8): 最小の RSA 鍵長を設定する RequiredRSASize 設定項目
を追加する. この長さを下回る鍵は sshd(8) のユーザー認証とホスト認証で
無視される.
ssh(1) will terminate a connection if the server offers an RSA key
that falls below this limit, as the SSH protocol does not include
the ability to retry a failed key exchange.
ssh(1) は, この制限を下回る RSA 鍵がサーバから提供された場合,
接続を切断する. SSH プロトコルは失敗した鍵交換をリトライする
機能を含んでいない.
* sftp-server(8): add a "users-groups-by-id@openssh.com" extension
request that allows the client to obtain user/group names that
correspond to a set of uids/gids.
sftp-server(8): クライアントが uid/gid の集合に関連する
user/group 名を得ることができる "users-groups-by-id@openssh.com"
拡張リクエストを追加する.
* sftp(1): use "users-groups-by-id@openssh.com" sftp-server
extension (when available) to fill in user/group names for
directory listings.
sftp(1): "users-groups-by-id@openssh.com" sftp-server 拡張
(が利用できる場合) を用いてディレクトリの列挙に user/group 名を
埋める.
* sftp-server(8): support the "home-directory" extension request
defined in draft-ietf-secsh-filexfer-extensions-00. This overlaps
a bit with the existing "expand-path@openssh.com", but some other
clients support it.
sftp-server(8): draft-ietf-secsh-filexfer-extensions-00 で定義された
"home-directory" 拡張リクエストをサポートする. これは, 既存の,
他のいくつかのクライアントがサポートしている
"expand-path@openssh.com" をちょっと上書きするが,
* ssh-keygen(1), sshd(8): allow certificate validity intervals,
sshsig verification times and authorized_keys expiry-time options
to accept dates in the UTC time zone in addition to the default
of interpreting them in the system time zone. YYYYMMDD and
YYMMDDHHMM[SS] dates/times will be interpreted as UTC if suffixed
with a 'Z' character.
ssh-keygen(1), sshd(8): 証明書の正当性期間と sshsig 検証の時間,
authorized_keys の期限オプションで デフォルトのシステムのタイムゾーンでの
解釈される日付に加えて UTC タイムゾーンでの日付を受け付けるようにする
'Z' の文字が後置されていると YYYYMMDD と YYMMDDHHMM[SS]
の日付/時間が UTC として解釈される.
Also allow certificate validity intervals to be specified in raw
seconds-since-epoch as hex value, e.g. -V 0x1234:0x4567890. This
is intended for use by regress tests and other tools that call
ssh-keygen as part of a CA workflow. bz3468
また, 証明書の正当性期間で 16 進数の値, 例えば -V 0x1234:0x4567890,
で生の seconds-since-epoch を指定できるようになる.
これは CA ワークフローの一部として ssh-keygen を呼ぶ回帰テストや
その他のツールでの利用を意図している. bz3468
* sftp(1): allow arguments to the sftp -D option, e.g. sftp -D
"/usr/libexec/sftp-server -el debug3"
sftp(1): sftp -D オプションに引数を許可する, 例えば
sfpt -D "/usr/libexec/sftp-server -el debug3".
* ssh-keygen(1): allow the existing -U (use agent) flag to work
with "-Y sign" operations, where it will be interpreted to require
that the private keys is hosted in an agent; bz3429
ssh-keygen(1): 既存の -U (use agent) オプションが "-Y sign" 操作と共に
動作するようになる. エージェントに配置された秘密鍵を必要とすると解釈される.
Bugfixes
--------
バグ修正
* ssh-keygen(1): implement the "verify-required" certificate option.
This was already documented when support for user-verified FIDO
keys was added, but the ssh-keygen(1) code was missing.
ssh-keygen(1): "verify-required" 証明書オプションを実装する.
これはすでに user-verified な FIDO 鍵の追加のサポートの際に
文書化されていたが, ssh-keygen(1) のコードはなかった.
* ssh-agent(1): hook up the restrict_websafe command-line flag;
previously the flag was accepted but never actually used.
ssh-agent(1): restrict_websafe コマンドラインオプンを有効にする;
以前はオプションは受け付けていたが実際に利用されていなかった.
* sftp(1): improve filename tab completions: never try to complete
names to non-existent commands, and better match the completion
type (local or remote filename) against the argument position
being completed.
ファイル名のタブ補完を改良する: 存在しないコマンドに対して名前の
補完を試みないようになり, 補完される引数の位置に対して補完のタイプ
(ローカルないしリモートのファイル名)によりよく一致するようになる.
* ssh-keygen(1), ssh(1), ssh-agent(1): several fixes to FIDO key
handling, especially relating to keys that request
user-verification. These should reduce the number of unnecessary
PIN prompts for keys that support intrinsic user verification.
GHPR302, GHPR329
ssh-keygen(1), ssh(1), ssh-agent(1): FIDO 鍵の扱いにいくつかの修正をする.
特に user-verification を要求する鍵に関して.
固有のユーザ検証をサポートする鍵に対する必要のない PIN prompt の数が
減るはずだ.
GHPR302, GHPR329
* ssh-keygen(1): when enrolling a FIDO resident key, check if a
credential with matching application and user ID strings already
exists and, if so, prompt the user for confirmation before
overwriting the credential. GHPR329
ssh-keygen(1): FIDO resident 鍵を登録する際, 一致するアプリケーションの
証明書とユーザ ID 文字列がすでに存在するかを検査し, 存在する場合
証明書を上書きする前にユーザに確認の prompt を出す. GHPR329
* sshd(8): improve logging of errors when opening authorized_keys
files. bz2042
sshd(8): authorized_keys ファイルを開く際のエラーのログを改善する.
bz2042
* ssh(1): avoid multiplexing operations that could cause SIGPIPE from
causing the client to exit early. bz3454
ssh(1):クライアントの早期終了を引き起こす SIGPIPE が発生する可能性のある
多重化操作を咲ける. bz3454
* ssh_config(5), sshd_config(5): clarify that the RekeyLimit
directive applies to both transmitted and received data. GHPR328
ssh_config(5), sshd_config(5): RekeyLimit 設定項目が
転送されるデータと受信するデータの両方に適用されることを明確にする.
GHPR328
* ssh-keygen(1): avoid double fclose() in error path.
ssh-keygen(1): エラーの場合に二重に fclose() していたのをやめる.
* sshd(8): log an error if pipe() fails while accepting a
connection. bz3447
sshd(8): 接続を受け付ける際の pipe() の失敗をエラーとしてログする.
bz3447
* ssh(1), ssh-keygen(1): fix possible NULL deref when built without
FIDO support. bz3443
ssh(1), ssh-keygen(1): FIDO サポートなしでビルドした場合の
NULL 逆参照の可能性を修正する. bz3443
* ssh-keyscan(1): add missing *-sk types to ssh-keyscan manpage.
GHPR294.
ssh-keyscan(1): ssh-keyscan の man ページに欠けていた *-sk タイプ
を追加する. GHPR294
* sshd(8): ensure that authentication passwords are cleared from
memory in error paths. GHPR286
sshd(8): エラーの場合にメモリから認証パスワードを消すことを保証する.
GHPR286
* ssh(1), ssh-agent(1): avoid possibility of notifier code executing
kill(-1). GHPR286
ssh(1), ssh-agent(1): 通知コードが kill(-1) を実行する可能性をなくす.
GHPR286
* ssh_config(5): note that the ProxyJump directive also accepts the
same tokens as ProxyCommand. GHPR305.
ssh_config(5): ProxyJump 設定項目が ProxyCommand のように
同じトークンを受け付けることを明記する. GHPR305.
* scp(1): do not not ftruncate(3) files early when in sftp mode. The
previous behaviour of unconditionally truncating the destination
file would cause "scp ~/foo localhost:foo" and the reverse
"scp localhost:foo ~/foo" to delete all the contents of their
destination. bz3431
scp(1): sftp モードの場合にファイルを早期に ftruncate(3) しないようにする.
送信先のファイルを絶対に truncate する以前の振舞いでは, "scp ~/foo localhost:foo"
と逆の "scp localhost:foo ~/foo" を実行すると送信先のすべての内容を削除してしまう.
bz3431
* ssh-keygen(1): improve error message when 'ssh-keygen -Y sign' is
unable to load a private key; bz3429
ssh-keygen(1): 'ssh-keygen -Y sign' が秘密鍵のロードをできなかった
場合のエラーメッセージを改善する; bz3429
* sftp(1), scp(1): when performing operations that glob(3) a remote
path, ensure that the implicit working directory used to construct
that path escapes glob(3) characters. This prevents glob characters
from being processed in places they shouldn't, e.g. "cd /tmp/a*/",
"get *.txt" should have the get operation treat the path "/tmp/a*"
literally and not attempt to expand it.
sftp(1), scp(1): リモートパスに対して glob(3) する操作を実行する際,
暗黙の作業ディレクトリが glob(3) の文字をエスケープしたパスで
構築されていることを保証する. これは glob の文字が 適用されるべきではない
位置で処理されるのを防ぐ. 例えば "cd /tmp/a*/", "get *.txt" では
get 操作は 文字通り パス "/tmp/a*" を扱い, 展開されてはならない.
* ssh(1), sshd(8): be stricter in which characters will be accepted
in specifying a mask length; allow only 0-9. GHPR278
ssh(1), sshd(8): mask 長を指定する際に受け付ける文字を厳格にする;
0-9 のみが有効. GHPR278
* ssh-keygen(1): avoid printing hash algorithm twice when dumping a
KRL
ssh-keygen(1): KRL をダンプする際ハッシュアルゴリズムを
2回表示するのを避ける.
* ssh(1), sshd(8): continue running local I/O for open channels
during SSH transport rekeying. This should make ~-escapes work in
the client (e.g. to exit) if the connection happened to have
stalled during a rekey event.
ssh(1), sshd(8): SSH トランスポートの rekey 中に開いているチャンネルの
ローカル I/O を継続する. 接続が rekey イベント中にストールした場合に
クライアントでの ~~エスケープ (例えば 終了) が動作するようになる.
* ssh(1), sshd(8): avoid potential poll() spin during rekeying
ssh(1), sshd(8): rekey 中に可能性のある poll() spin を避ける
* Further hardening for sshbuf internals: disallow "reparenting" a
hierarchical sshbuf and zero the entire buffer if reallocation
fails. GHPR287
sshbuf 内部をより強固にする. 階層的な sshbuf の "reparenting" を
無効にし, 再配置に失敗した場合バッファ全体をゼロで埋める.
GHPR287
Portability
-----------
移植性
* ssh(1), ssh-keygen(1), sshd(8): automatically enable the built-in
FIDO security key support if libfido2 is found and usable, unless
--without-security-key-builtin was requested.
ssh(1), ssh-keygen(1), sshd(8): --without-security-key-builtin が
要求されていなければ, libfido2 が発見され利用可能ならば
自動的に組込みの FIDO セキュリティ鍵サポートが有効化される.
* ssh(1), ssh-keygen(1), sshd(8): many fixes to make the WinHello
FIDO device usable on Cygwin. The windows://hello FIDO device will
be automatically used by default on this platform unless requested
otherwise, or when probing resident FIDO credentials (an operation
not currently supported by WinHello).
ssh(1), ssh-keygen(1), sshd(8): Cygwin 上の WinHello FIDO デバイス
を利用可能にする. windows://hello FIDO デバイスは, 他のものが要求
されていないか, (WinHello によって現在サポートされていない操作の)
resident FIDO credentials が探査されていない場合, Cygwin では
自動的に利用される.
* Portable OpenSSH: remove workarounds for obsolete and unsupported
versions of OpenSSL libcrypto. In particular, this release removes
fallback support for OpenSSL that lacks AES-CTR or AES-GCM.
移植版 OpenSSH: OpenSSL libcrypto のすたれてサポートされていないバージョン向けの
緩和策を除く. 特に AES-CTR と AES-GCM を欠いている OpenSSL の代替
サポートをこのリリースでは除いている.
Those AES cipher modes were added to OpenSSL prior to the minimum
version currently supported by OpenSSH, so this is not expected to
impact any currently supported configurations.
それらの AES 暗号モードは, OpenSSH が現在サポートしている最低バージョンより
前に OpenSSL に追加されており, 現在のサポートされている構成にはなにも影響しないと
期待される.
* sshd(8): fix SANDBOX_SECCOMP_FILTER_DEBUG on current Linux/glibc
sshd(8): 現在の Linux/glibc 上での SANDBOX_SECCOMP_FILTER_DEBUG を修正する
* All: resync and clean up internal CSPRNG code.
全て: 内部の CSPRNG コードを再同期し整理する.
* scp(1), sftp(1), sftp-server(8): avoid linking these programs with
unnecessary libraries. They are no longer linked against libz and
libcrypto. This may be of benefit to space constrained systems
using any of those components in isolation.
scp(1), sftp(1), sftp-server(8): 不要なライブラリをこれらのプログラムに
リンクしないようにする. libz と libcrypto に対してもはやリンクされない.
容量が限られたシステムでこれらのプログラムが独立に用いられる場合に
利益があるだろう.
* sshd(8): add AUDIT_ARCH_PPC to supported seccomp sandbox
architectures.
sshd(8): サポートする seccomp sandbox アーキテクチャーに
AUDIT_ARCH_PPC を追加する.
* configure: remove special casing of crypt(). configure will no
longer search for crypt() in libcrypto, as it was removed from
there years ago. configure will now only search libc and libcrypt.
configure: crypt() の特別な場合を削除する. configure は
libcrypto 内の crypt() をもはや検索していない. 数年前に削除されている.
現在 configure は libc と libcrypt だけを検索する.
* configure: refuse to use OpenSSL 3.0.4 due to potential RCE in its
RSA implementation (CVE-2022-2274) on x86_64.
configure: x86_64 での RSA 実装の RCE の可能性 (CVE-2022-2274) のため
OpenSSL 3.0.4 の利用を拒否する.
* All: request 1.1x API compatibility for OpenSSL >=3.x; GHPR322
全て: OpenSSL >=3.x に対して 1.1x API 互換性を要求する; GHPR322
* ssh(1), ssh-keygen(1), sshd(8): fix a number of missing includes
required by the XMSS code on some platforms.
ssh(1), ssh-keygen(1), sshd(8): いくつかのプラットフォームで
XMSS コードで必要とされる多数の欠けていた include を修正する.
* sshd(8): cache timezone data in capsicum sandbox.
sshd(8): capsicum sandbox でタイムゾーンのデータをキャッシュする.