OpenSSH 9.3 がリリースされました

2023/03/15, OpenSSH 9.3 がリリースされました.

セキュリティバグの修正のあるリリースです. ただし影響は限定的に見えます.

# https://www.openssh.com/releasenotes.html#9.3

Changes since OpenSSH 9.2
=========================

OpenSSH 9.2 からの変更点

This release fixes a number of security bugs.

このリリースはいくつかのセキュリティバグを修正する.

Security
========

セキュリティ

This release contains fixes for a security problem and a memory
safety problem. The memory safety problem is not believed to be
exploitable, but we report most network-reachable memory faults as
security bugs.

このリリースはセキュリティの問題とメモリ安全の問題の修正を含んでいる.
メモリ安全の問題は攻撃可能であるとは思われないが, 我々は
ネットワーク到達可能なメモリ操作の失敗のほとんどはセキュリティバグ
として報告する.

 * ssh-add(1): when adding smartcard keys to ssh-agent(1) with the
   per-hop desination constraints (ssh-add -h ...) added in OpenSSH
   8.9, a logic error prevented the constraints from being
   communicated to the agent. This resulted in the keys being added
   without constraints. The common cases of non-smartcard keys and
   keys without destination constraints are unaffected. This problem
   was reported by Luci Stanescu.

   ssh-add(1): OpenSSH 8.9 で加えられた hop 単位での送信先制約で
   ssh-agent(1) にスマートカードの鍵を追加する際, 論理エラーにより
   制約がエージェントに伝達されない. これにより, 鍵は制約なしに
   追加されてしまう. スマートカードの鍵でない場合と送信先制約がない
   鍵の一般的な場合には影響しない. この問題は Luci Stanescu によって
   報告された.

 * ssh(1): Portable OpenSSH provides an implementation of the
   getrrsetbyname(3) function if the standard library does not
   provide it, for use by the VerifyHostKeyDNS feature. A
   specifically crafted DNS response could cause this function to
   perform an out-of-bounds read of adjacent stack data, but this
   condition does not appear to be exploitable beyond denial-of-
   service to the ssh(1) client.

   ssh(1): 移植版 OpenSSH は VerifyHostKeyDNS で利用するため,
   標準ライブラリで提供していない場合 getrrsetbyname(3) 関数の実装
   を提供する. 特別に加工された DNS 応答は, この関数が 隣接したスタック
   データの境界外の読み込みを発生させる. ただしこの条件は ssh(1)
   クライアントに対するサービス不能攻撃を越えては攻撃可能でないようだ.

   The getrrsetbyname(3) replacement is only included if the system's
   standard library lacks this function and portable OpenSSH was not
   compiled with the ldns library (--with-ldns). getrrsetbyname(3) is
   only invoked if using VerifyHostKeyDNS to fetch SSHFP records. This
   problem was found by the Coverity static analyzer.

   getrrsetbyname(3) の代替は, システムの標準ライブラリがこの関数を欠いていて
   OpenSSH が ldsn ライブラリ (--with-ldns) と共にコンパイルされていない場合に
   のみ含まれる. getrrsetbyname(3) は SSHFP レコードを取得するために
   VerifyHostKeyDNS を用いる場合のにみ利用される. この問題は Coverity
   静的解析器によって発見された.

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.
   These include several reported via bz2687
   
   Coverity 静的解析探索で見付かった低インパクトの問題を
   いくつか修正する.
   koreraha bz2687 でレポートされたものをいくつか含む.

 * 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