OpenSSH 8.3 リリース準備中 / Call for testing: OpenSSH 8.3
OpenSSH 8.3 がリリース準備中です.
バグ修正がメインのリリースとなりそうです.
Security
========
セキュリティ
* scp(1): when receiving files, scp(1) could be become desynchronised
if a utimes(2) system call failed. This could allow file contents
to be interpreted as file metadata and thereby permit an adversary
to craft a file system that, when copied with scp(1) in a
configuration that caused utimes(2) to fail (e.g. under a SELinux
policy or syscall sandbox), transferred different file names and
contents to the actual file system layout.
scp(1): ファイルを受け取る際, utimes(2) システムコールが失敗すると
scp(1) は 非同期になる可能性がある. この時ファイルの内容が
ファイルのメタデータとして解釈される可能性があり, それゆえ
ファイルシステムを加工する攻撃を許してしまう.
(例えば SELinux のポリシー や システムコールサンドボックスによって)
utimes(2) が失敗しうる設定で scp(1) でのコピーされたファイルが,
実際のファイルシステムの配置とは異なるファイル名や内容でコピーされる.
Exploitation of this is not likely as utimes(2) does not fail under
normal circumstances. Successful exploitation is not silent - the
output of scp(1) would show transfer errors followed by the actual
file(s) that were received.
この問題は, utimes(2) は通常の環境で失敗しないので, 発生する蓋然性は低い.
問題が発生したときはわかりやすい - scp の出力は, 実際に転送されたファイル(群)
に続いて転送エラーを表示するだろう.
Finally, filenames returned from the peer are (since openssh-8.0)
matched against the user's requested destination, thereby
disallowing a successful exploit from writing files outside the
user's selected target glob (or directory, in the case of a
recursive transfer). This ensures that this attack can achieve no
more than a hostile peer is already able to do within the scp
protocol.
最後に, 相手方から転送されたファイル名は (openssh-8.0 から)
ユーザの要求した転送先に一致するので, ユーザが選択した対象の
glob (ないし, 再帰転送の場合は, ディレクトリ) の外側で
この問題が発生することはない. これは, この攻撃によって悪意のある
相手方が scp プロトコル内で可能なこと以上のことはできないことを
保証します.
Potentially-incompatible changes
================================
潜在的に非互換な変更
This release includes a number of changes that may affect existing
configurations:
このリリースは, 既存の設定に変更しうる変更を含んでいる.
* sftp(1): reject an argument of "-1" in the same way as ssh(1) and
scp(1) do instead of accepting and silently ignoring it.
sftp(1): コマンドライン引数 "-1" を ssh(1) と scp(1) と同様に拒否する.
これまでは受け入れて静かに無視していた.
Changes since OpenSSH 8.2
=========================
OpenSSH 8.2 からの変更
The focus of this release is bug fixing.
このリリースの焦点はバグ修正だ.
New Features
------------
新機能
* sshd(8): make IgnoreRhosts a tri-state option: "yes" to ignore
rhosts/shosts, "no" allow rhosts/shosts or (new) "shosts-only"
to allow .shosts files but not .rhosts.
ssh(8): IgnoreRhosts は 3つの状態を持つ設定項目となる. "yes" は
rhosts/shosts を無視する. "no" は rhosts/shosts を利用可能とする.
(新しい) "shosts-only" は .shosts を利用可能とするが, .rhosts は
そうしない.
* sshd(8): allow the IgnoreRhosts directive to appear anywhere in a
sshd_config, not just before any Match blocks; bz3148
sshd(8): IgnoreRhosts 設定項目を, すべての Match ブロック の前ではなく
sshd_config のどこに配置してもよいようにする. bz3148
* ssh(1): add %TOKEN percent expansion for the LocalFoward and
RemoteForward keywords when used for Unix domain socket forwarding.
bz#3014
ssh(1): ユニックスドメインソケット転送で利用する際の %TOKEN (%h など)
の展開を LocalFoward と RemoteForward で追加する. bz#3014
* all: allow loading public keys from the unencrypted envelope of a
private key file if no corresponding public key file is present.
all: 秘密鍵ファイルがあって対応する公開鍵がない場合に, 秘密鍵ファイルの
暗号化されていない envelope から公開鍵をロードできるようにする.
* ssh(1), sshd(8): prefer to use chacha20 from libcrypto where
possible instead of the (slower) portable C implementation included
in OpenSSH.
ssh(1), sshd(8): chacha20 の利用時に, 可能ならば
(より遅い) OpenSSH に含まれる (より遅く) 移植性のある C の実装よりも
libcrypto を利用する.
* ssh-keygen(1): add ability to dump the contents of a binary key
revocation list via "ssh-keygen -lQf /path" bz#3132
ssh-keygen(1): "ssh-keygen -lQf /path" によって バイナリ 鍵
失効リストの内容を出力できるようにする. bz#3132
Bugfixes
--------
バグ修正
* ssh(1): fix IdentitiesOnly=yes to also apply to keys loaded from
a PKCS11Provider; bz#3141
ssh(1): PKCS11Provider からロードされた鍵に対しても IdentitiesOnly=yes
を適用するように修正する; bz#3141
* ssh-keygen(1): avoid NULL dereference when trying to convert an
invalid RFC4716 private key.
ssh-keygen(1): 不正な RFC4716 秘密鍵を変換しようとする際に
NULL の参照を外さないようにする.
* scp(2): when performing remote-to-remote copies using "scp -3",
start the second ssh(1) channel with BatchMode=yes enabled to
avoid confusing and non-deterministic ordering of prompts.
scp(2): "scp -3" を用いて リモート-リモート コピーを実行する際,
プロンプトの混乱を招き非決定的な順番を回避できるよう
2番目の ssh(1) チャンネルを BatchMode=yes で開始する.
* ssh(1), ssh-keygen(1): when signing a challenge using a FIDO token,
perform hashing of the message to be signed in the middleware layer
rather than in OpenSSH code. This permits the use of security key
middlewares that perform the hashing implicitly, such as Windows
Hello.
ssh(1), ssh-keygen(1): FIDO トークンを用いてチャレンジに署名する際,
OpenSSH のコードよりもミドルウェアの層で署名されたメッセージの
ハッシュ化を優先して行なうようにする. Windows ハローのような,
ハッシュを暗黙的に実行するセキュリティ鍵ミドルウェアの利用が
できるようになる.
* ssh(1): fix incorrect error message for "too many known hosts
files." bz#3149
ssh(1): "too many known hosts files" に対する間違った
エラーメッセージを修正する. bz#3149
* ssh(1): make failures when establishing "Tunnel" forwarding
terminate the connection when ExitOnForwardFailure is enabled;
bz#3116
ssh(1): ExitOnForwardFailure が有効な場合に "トンネル" 転送の確立に失敗したら
接続を終了するようにする; bz#3116
* ssh-keygen(1): fix printing of fingerprints on private keys and add
a regression test for same.
ssh-keygen(1): 秘密鍵の指紋の出力を修正し, 回帰テストを追加する.
* sshd(8): document order of checking AuthorizedKeysFile (first) and
AuthorizedKeysCommand (subsequently, if the file doesn't match);
bz#3134
sshd(8): AuthorizedKeysFile (最初にチェックする) と AuthorizedKeysCommand
(ファイルがマッチしなかったら, 次に) の順番を文書化する. bz#3134
* sshd(8): document that /etc/hosts.equiv and /etc/shosts.equiv are
not considered for HostbasedAuthentication when the target user is
root; bz#3148
sshd(8): 対象ユーザが root の場合に HostbasedAuthentication で
/etc/hosts.equiv と /etc/shosts.equiv が考慮されないことを文書化する;
bz#3148
* ssh(1), ssh-keygen(1): fix NULL dereference in private certificate
key parsing (oss-fuzz #20074).
ssh(1), ssh-keygen(1): 秘密証明書鍵のパース時の NULL の参照外しを
修正する (oss-fuzz #20074).
* ssh(1), sshd(8): more consistency between sets of %TOKENS are
accepted in various configuration options.
ssh(1), sshd(8): %TOKENS の集合の間の一貫性を
いろいろな設定オプション間でより一致するようにする.
* ssh(1), ssh-keygen(1): improve error messages for some common
PKCS#11 C_Login failure cases; bz#3130
ssh(1), ssh-keygen(1): PKCS#11 C_Login 失敗のいくつかの場合の
エラーメッセージを改善する; bz#3130
* ssh(1), sshd(8): make error messages for problems during SSH banner
exchange consistent with other SSH transport-layer error messages
and ensure they include the relevant IP addresses bz#3129
ssh(1), sshd(8): SSH バナー交換時の問題のエラーメッセージを
他の SSH トランスポート層エラーメッセージと一貫するようにし,
関連する IPアドレスを含むようにする. bz#3129
* various: fix a number of spelling errors in comments and debug/error
messages
いろいろ: コメントや debug/error メッセージ中のスペルミスを多数
修正する.
* ssh-keygen(1), ssh-add(1): when downloading FIDO2 resident keys
from a token, don't prompt for a PIN until the token has told us
that it needs one. Avoids double-prompting on devices that
implement on-device authentication.
ssh-keygen(1), ssh-add(1): FIDO2 resident 鍵をトークンから
ダウンロードする際, トークンが PIN が必要だと言うまでは
PIN のプロンプトを表示しない. デバイスの認証を実装しているデバイスでの
2重プロンプトを避ける.
* sshd(8), ssh-keygen(1): no-touch-required FIDO certificate option
should be an extension, not a critical option.
sshd(8), ssh-keygen(1): 接触が必要ない FIDO 証明書オプションは
拡張とする必要がある. 必須のオプションではない.
* ssh(1), ssh-keygen(1), ssh-add(1): offer a better error message
when trying to use a FIDO key function and SecurityKeyProvider is
empty.
ssh(1), ssh-keygen(1), ssh-add(1): FIDO 鍵関数を利用しようとして
SecurityKeyProvider が空の場合のエラーメッセージを改善する.
* ssh-add(1), ssh-agent(8): ensure that a key lifetime fits within
the values allowed by the wire format (u32). Prevents integer
wraparound of the timeout values. bz#3119
ssh-add(1), ssh-agent(8): 鍵の有効時間は wire format (u32) で
許可されている値の範囲内に収まることを保証する. タイムアウト値の
整数循環を防止する. bz#3119
* ssh(1): detect and prevent trivial configuration loops when using
ProxyJump. bz#3057.
ssh(1): ProxyJump を利用した 自明な設定ループを検出し防止する bz#3057
Portability
-----------
移植性
* Detect systems where signals flagged with SA_RESTART will interrupt
select(2). POSIX permits implementations to choose whether
select(2) will return when interrupted with a SA_RESTART-flagged
signal, but OpenSSH requires interrupting behaviour.
SA_RESTART フラグ付きのシグナルが select(2) に割り込むシステムを検出する.
POSIX は SA_RESTART フラグ付きのシグナルによって割り込まれた場合に
select(2) が return するかどうかを実装にまかせているが,
OpenSSH は割り込まれる振舞いを要求している.
* Several compilation fixes for HP/UX and AIX.
HP/UX と AIX でのいくつかのコンパイルの問題の修正.
* On platforms that do not support setting process-wide routing
domains (all excepting OpenBSD at present), fail to accept a
configuration attempts to set one at process start time rather than
fatally erroring at run time. bz#3126
プロセス単位のルーティングドメインの設定をサポートしないプラットフォーム
(現在 OpenBSD 以外のすべてのプラットフォーム) で, そのような設定に対して
実行時に致命的に失敗するのではなく開始時に設定しようとしたらエラーと
なるようにする. bz#3126
* Improve detection of egrep (used in regression tests) on platforms
that offer a poor default one (e.g. Solaris).
(例えば Solaris のような) 貧弱なデフォルトの egrep を提供するプラットフォーム
での egrep の検出を改善する. (egrep は回帰テストで利用している)
* A number of shell portability fixes for the regression tests.
回帰テストでの シェル移植性を多数修正する.
* Fix theoretical infinite loop in the glob(3) replacement
implementation.
glob(3) 置換実装での理論上ありえる無限ループを修正する.
* Fix seccomp sandbox compilation problems for some Linux
configurations bz#3085
いくつかの Linux の設定での seccomp サンドボックスのコンパイルの
問題を修正する bz#3085
* Improved detection of libfido2 and some compilation fixes for some
configurations when --with-security-key-builtin is selected.
libfido2 の検出改善し, --with-security-key-builtin が選択された場合の
いくつかの設定でのコンパイル時の問題を修正する.