Merge ~paelzer/ubuntu/+source/openssh:fix-1863930-ssh-version-advertise-bionic into ubuntu/+source/openssh:ubuntu/bionic-devel

Proposed by Christian Ehrhardt 
Status: Work in progress
Proposed branch: ~paelzer/ubuntu/+source/openssh:fix-1863930-ssh-version-advertise-bionic
Merge into: ubuntu/+source/openssh:ubuntu/bionic-devel
Diff against target: 100 lines (+72/-0)
4 files modified
debian/changelog (+8/-0)
debian/patches/lp-1863930-Fix-logic-bug-in-sshd_exchange_identification.patch (+31/-0)
debian/patches/lp-1863930-unbreak-clients-that-advertise-protocol.patch (+31/-0)
debian/patches/series (+2/-0)
Reviewer Review Type Date Requested Status
Bryce Harrington (community) Approve
Canonical Server packageset reviewers Pending
git-ubuntu developers Pending
Review via email: mp+380138@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Revision history for this message
Bryce Harrington (bryce) wrote :

* Changelog:
  - [-] old content and logical tag match as expected
  - [√] changelog entry correct version and targeted codename
  - [√] changelog entries correct
  - [√] update-maintainer has been run

* Actual changes:
  - [-] no upstream changes to consider
  - [-] no further upstream version to consider
  - [-] debian changes look safe

* Old Delta:
  - [-] dropped changes are ok to be dropped
  - [-] nothing else to drop
  - [√] changes forwarded upstream/debian (if appropriate)

* New Delta:
  - [-] no new patches added
  - [√] patches match what was proposed upstream
  - [√] patches correctly included in debian/patches/series
  - [√] patches have correct DEP3 metadata

* Build/Test:
  - [√] build is ok
  - [ ] verified PPA package installs/uninstalls
  - [ ] autopkgtest against the PPA package passes
  - [ ] sanity checks test fine

I seem to be unable to install from the bileto PPA:

  $ sudo add-apt-repository -s ppa:ci-train-ppa-service/3962
  ...
  Err:3 http://ppa.launchpad.net/ci-train-ppa-service/3962/ubuntu focal Release
  404 Not Found [IP: 91.189.95.83 80]
  Reading package lists... Done
  E: The repository 'http://ppa.launchpad.net/ci-train-ppa-service/3962/ubuntu focal Release' does not have a Release file.
  N: Updating from such a repository can't be done securely, and is therefore disabled by default.
  N: See apt-secure(8) manpage for repository creation and user configuration details.

I tried adding [trusted=yes], but then get this error:

Ign:14 http://ppa.launchpad.net/ci-train-ppa-service/3962/ubuntu focal/main amd64 c-n-f Metadata
Reading package lists... Done
E: Failed to fetch http://ppa.launchpad.net/ci-train-ppa-service/3962/ubuntu/dists/focal/main/source/Sources 404 Not Found [IP: 91.189.95.83 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.

I thought maybe this might be a vpn issue, and tinkered with that a bit but no such luck. If you have advice I can try more. Or maybe setting up a non-bileto PPA might work better?

Anyway, apart from testing the ppa everything else looks good to go, and I know the testing will have to be done for the SRU (and has been requested of the original reporter) so am giving a provisional +1, and trust the testing will be covered separately.

review: Approve
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Hi Bryce,
this is a Bionic PPA so add-apt-repo on Focal didn't find binaries
It works fine on Bionic - thereby considering that MP approved, but waiting on the bug for the reporter to classify the severity.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Low prio and no bug feedback - let us mark this MP WIP (probably forever).

Unmerged commits

d3cd65d... by Christian Ehrhardt 

changelog: fix clients advertising version 1.99 (LP: #1863930)

Signed-off-by: Christian Ehrhardt <email address hidden>

3c0ff81... by Christian Ehrhardt 

fix clients advertising version 1.99 (LP: #1863930)
- d/p/lp-1863930-Fix-logic-bug-in-sshd_exchange_identification.patch
- d/p/lp-1863930-unbreak-clients-that-advertise-protocol.patch

Signed-off-by: Christian Ehrhardt <email address hidden>

8801d2d... by Dimitri John Ledkov

Import patches-unapplied version 1:7.6p1-4ubuntu0.4 to ubuntu/bionic-proposed

Imported using git-ubuntu import.

Changelog parent: 9843383c54ff366e6ebf7a700e1a640a6cc00cbf

New changelog entries:
  * Apply upstream patch to stop using 2020 as a future date in regress
    tests. LP: #1859013

9843383... by Marc Deslauriers

Import patches-unapplied version 1:7.6p1-4ubuntu0.3 to ubuntu/bionic-security

Imported using git-ubuntu import.

Changelog parent: d33d1e6b1fb50bab7d7458acb8105bcd529ed7c1

New changelog entries:
  * SECURITY UPDATE: Incomplete fix for CVE-2019-6111
    - debian/patches/CVE-2019-6111-2.patch: add another fix to the filename
      check in scp.c.
    - CVE-2019-6111
  * Fixed inverted CVE numbers in patch filenames and in previous
    changelog.

d33d1e6... by Marc Deslauriers

Import patches-unapplied version 1:7.6p1-4ubuntu0.2 to ubuntu/bionic-security

Imported using git-ubuntu import.

Changelog parent: a68214c9e9469639c28d396ff88f6b1471772077

New changelog entries:
  * SECURITY UPDATE: access restrictions bypass in scp
    - debian/patches/CVE-2018-20685.patch: disallow empty filenames
      or ones that refer to the current directory in scp.c.
    - CVE-2018-20685
  * SECURITY UPDATE: scp client spoofing via object name
    - debian/patches/CVE-2019-6109.patch: make sure the filenames match
      the wildcard specified by the user, and add new flag to relax the new
      restrictions in scp.c, scp.1.
    - CVE-2019-6109
  * SECURITY UPDATE: scp client missing received object name validation
    - debian/patches/CVE-2019-6111-1.patch: sanitize scp filenames via
      snmprintf in atomicio.c, progressmeter.c, progressmeter.h,
      scp.c, sftp-client.c.
    - debian/patches/CVE-2019-6111-2.patch: force progressmeter updates in
      progressmeter.c, progressmeter.h, scp.c, sftp-client.c.
    - CVE-2019-6111

a68214c... by Leonidas S. Barbosa

Import patches-unapplied version 1:7.6p1-4ubuntu0.1 to ubuntu/bionic-security

Imported using git-ubuntu import.

Changelog parent: 7534b10e32e17a4d01859dbda72f282ded065700

New changelog entries:
  [ Ryan Finnie ]
  * SECURITY UPDATE: OpenSSH User Enumeration Vulnerability (LP: #1794629)
    - debian/patches/CVE-2018-15473.patch: delay bailout for invalid
      authenticating user until after the packet containing the request
      has been fully parsed.
    - CVE-2018-15473

7534b10... by Colin Watson

Import patches-unapplied version 1:7.6p1-4 to debian/sid

Imported using git-ubuntu import.

Changelog parent: f2c6c36a53248355c46609e8c5cbb431c83542d9

New changelog entries:
  * Move VCS to salsa.debian.org.
  * Add a preseeding-only openssh-server/password-authentication debconf
    template that can be used to disable password authentication (closes:
    #878945).

f2c6c36... by Colin Watson

Import patches-unapplied version 1:7.6p1-3 to debian/sid

Imported using git-ubuntu import.

Changelog parent: cd4c51854e4ddae4296398eadca6f712435f57a8

New changelog entries:
  [ Colin Watson ]
  * Remove the decade-old ssh-krb5 transitional package; upgrades of
    openssh-server will preserve existing configuration, and new
    installations should just enable GSSAPIAuthentication and
    GSSAPIKeyExchange in sshd_config (closes: #878626).
  * Support the "noudeb" build profile.
  * Fix putty-transfer regression test.
  [ Anders Kaseorg ]
  * debian/systemd/ssh-agent.service: Add missing dbus dependency.
  [ Jason Duerstock ]
  * Add a "pkg.openssh.nognome" build profile, which disables building the
    ssh-askpass-gnome binary package and avoids the build-dependency on
    libgtk-3-dev (closes: #883819).

cd4c518... by Colin Watson

Import patches-unapplied version 1:7.6p1-2 to debian/sid

Imported using git-ubuntu import.

Changelog parent: d6a1228094f396edcdfd9cc2ff8dad19a1bd634d

New changelog entries:
  * Apply upstream patch to fix PermitOpen argument handling.

d6a1228... by Colin Watson

Import patches-unapplied version 1:7.6p1-1 to debian/sid

Imported using git-ubuntu import.

Changelog parent: c931f6058b13a610b1e16d3734d1070f262e6383

New changelog entries:
  * New upstream release (https://www.openssh.com/txt/release-7.6):
    - SECURITY: sftp-server(8): In read-only mode, sftp-server was
      incorrectly permitting creation of zero-length files. Reported by
      Michal Zalewski.
    - ssh(1): Delete SSH protocol version 1 support, associated
      configuration options and documentation (LP: #1584321).
    - ssh(1)/sshd(8): Remove support for the hmac-ripemd160 MAC.
    - ssh(1)/sshd(8): Remove support for the arcfour, blowfish and CAST
      ciphers.
    - Refuse RSA keys <1024 bits in length and improve reporting for keys
      that do not meet this requirement.
    - ssh(1): Do not offer CBC ciphers by default.
    - ssh(1): Add RemoteCommand option to specify a command in the ssh
      config file instead of giving it on the client's command line. This
      allows the configuration file to specify the command that will be
      executed on the remote host.
    - sshd(8): Add ExposeAuthInfo option that enables writing details of the
      authentication methods used (including public keys where applicable)
      to a file that is exposed via a $SSH_USER_AUTH environment variable in
      the subsequent session.
    - ssh(1): Add support for reverse dynamic forwarding. In this mode, ssh
      will act as a SOCKS4/5 proxy and forward connections to destinations
      requested by the remote SOCKS client. This mode is requested using
      extended syntax for the -R and RemoteForward options and, because it
      is implemented solely at the client, does not require the server be
      updated to be supported.
    - sshd(8): Allow LogLevel directive in sshd_config Match blocks.
    - ssh-keygen(1): Allow inclusion of arbitrary string or flag certificate
      extensions and critical options.
    - ssh-keygen(1): Allow ssh-keygen to use a key held in ssh-agent as a CA
      when signing certificates.
    - ssh(1)/sshd(8): Allow IPQoS=none in ssh/sshd to not set an explicit
      ToS/DSCP value and just use the operating system default.
    - ssh-add(1): Add -q option to make ssh-add quiet on success.
    - ssh(1): Expand the StrictHostKeyChecking option with two new settings.
      The first "accept-new" will automatically accept hitherto-unseen keys
      but will refuse connections for changed or invalid hostkeys. This is
      a safer subset of the current behaviour of StrictHostKeyChecking=no.
      The second setting "off", is a synonym for the current behaviour of
      StrictHostKeyChecking=no: accept new host keys, and continue
      connection for hosts with incorrect hostkeys. A future release will
      change the meaning of StrictHostKeyChecking=no to the behaviour of
      "accept-new".
    - ssh(1): Add SyslogFacility option to ssh(1) matching the equivalent
      option in sshd(8).
    - ssh(1): Use HostKeyAlias if specified instead of hostname for matching
      host certificate principal names.
    - sftp(1): Implement sorting for globbed ls.
    - ssh(1): Add a user@host prefix to client's "Permission denied"
      messages, useful in particular when using "stacked" connections (e.g.
      ssh -J) where it's not clear which host is denying.
    - ssh(1): Accept unknown EXT_INFO extension values that contain \0
      characters. These are legal, but would previously cause fatal
      connection errors if received.
    - sftp(1): Print '?' instead of incorrect link count (that the protocol
      doesn't provide) for remote listings.
    - ssh(1): Return failure rather than fatal() for more cases during
      session multiplexing negotiations. Causes the session to fall back to
      a non-mux connection if they occur.
    - ssh(1): Mention that the server may send debug messages to explain
      public key authentication problems under some circumstances.
    - Translate OpenSSL error codes to better report incorrect passphrase
      errors when loading private keys.
    - sshd(8): Adjust compatibility patterns for WinSCP to correctly
      identify versions that implement only the legacy DH group exchange
      scheme (closes: #877800).
    - ssh(1): Print the "Killed by signal 1" message only at LogLevel
      verbose so that it is not shown at the default level; prevents it from
      appearing during ssh -J and equivalent ProxyCommand configs.
    - ssh-keygen(1): When generating all hostkeys (ssh-keygen -A), clobber
      existing keys if they exist but are zero length. Zero-length keys
      could previously be made if ssh-keygen failed or was interrupted part
      way through generating them.
    - ssh-keyscan(1): Avoid double-close() on file descriptors.
    - sshd(8): Avoid reliance on shared use of pointers shared between
      monitor and child sshd processes.
    - sshd_config(8): Document available AuthenticationMethods.
    - ssh(1): Avoid truncation in some login prompts.
    - ssh(1): Make "--" before the hostname terminate argument processing
      after the hostname too (closes: #873201).
    - ssh-keygen(1): Switch from aes256-cbc to aes256-ctr for encrypting
      new-style private keys.
    - ssh(1): Warn and do not attempt to use keys when the public and
      private halves do not match.
    - sftp(1): Don't print verbose error message when ssh disconnects from
      under sftp.
    - sshd(8): Fix keepalive scheduling problem: prevent activity on a
      forwarded port from preventing the keepalive from being sent.
    - sshd(8): When started without root privileges, don't require the
      privilege separation user or path to exist.
    - ssh(1)/sshd(8): Correctness fix for channels implementation: accept
      channel IDs greater than 0x7FFFFFFF.
    - sshd(8): Expose list of completed authentication methods to PAM via
      the SSH_AUTH_INFO_0 PAM environment variable.
    - ssh(1)/sshd(8): Fix several problems in the tun/tap forwarding code,
      mostly to do with host/network byte order confusion.
    - sshd(8): Avoid Linux seccomp violations on ppc64le over the socketcall
      syscall.
  * Build-depend on debhelper (>= 9.20160709~) rather than dh-systemd.
  * Change priorities of ssh and ssh-krb5 binary packages to optional, since
    "Priority: extra" is now deprecated.
  * Use HTTPS form of copyright-format URL.
  * Adjust "Running sshd from inittab" instructions in README.Debian to
    recommend using service(8) rather than calling the init script directly.
  * Policy version 4.1.0.
  * Adjust "Per-connection sshd instances with systemd" instructions in
    README.Debian to recommend using a drop-in file rather than copying and
    modifying the ssh.socket unit file.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index da07669..060d713 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,11 @@
6+openssh (1:7.6p1-4ubuntu0.5) bionic; urgency=medium
7+
8+ * fix clients advertising version 1.99 (LP: #1863930)
9+ - d/p/lp-1863930-Fix-logic-bug-in-sshd_exchange_identification.patch
10+ - d/p/lp-1863930-unbreak-clients-that-advertise-protocol.patch
11+
12+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 03 Mar 2020 07:47:02 +0100
13+
14 openssh (1:7.6p1-4ubuntu0.4) bionic; urgency=medium
15
16 * Apply upstream patch to stop using 2020 as a future date in regress
17diff --git a/debian/patches/lp-1863930-Fix-logic-bug-in-sshd_exchange_identification.patch b/debian/patches/lp-1863930-Fix-logic-bug-in-sshd_exchange_identification.patch
18new file mode 100644
19index 0000000..0778057
20--- /dev/null
21+++ b/debian/patches/lp-1863930-Fix-logic-bug-in-sshd_exchange_identification.patch
22@@ -0,0 +1,31 @@
23+From c9c1bba06ad1c7cad8548549a68c071bd807af60 Mon Sep 17 00:00:00 2001
24+From: "stsp@openbsd.org" <stsp@openbsd.org>
25+Date: Tue, 23 Jan 2018 20:00:58 +0000
26+Subject: [PATCH] upstream commit
27+
28+Fix a logic bug in sshd_exchange_identification which
29+prevented clients using major protocol version 2 from connecting to the
30+server. ok millert@
31+
32+OpenBSD-Commit-ID: 8668dec04586e27f1c0eb039ef1feb93d80a5ee9
33+
34+Backport-Note: dropped the no-op file header change
35+Origin: backport, https://anongit.mindrot.org/openssh.git/commit/?id=c9c1bba06
36+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1863930
37+Last-Update: 2020-03-03
38+
39+---
40+ sshd.c | 4 ++--
41+ 1 file changed, 2 insertions(+), 2 deletions(-)
42+
43+--- a/sshd.c
44++++ b/sshd.c
45+@@ -465,7 +465,7 @@ sshd_exchange_identification(struct ssh
46+ chop(server_version_string);
47+ debug("Local version string %.200s", server_version_string);
48+
49+- if (remote_major != 2 ||
50++ if (remote_major != 2 &&
51+ !(remote_major == 1 && remote_minor == 99)) {
52+ s = "Protocol major versions differ.\n";
53+ (void) atomicio(vwrite, sock_out, s, strlen(s));
54diff --git a/debian/patches/lp-1863930-unbreak-clients-that-advertise-protocol.patch b/debian/patches/lp-1863930-unbreak-clients-that-advertise-protocol.patch
55new file mode 100644
56index 0000000..cc7139b
57--- /dev/null
58+++ b/debian/patches/lp-1863930-unbreak-clients-that-advertise-protocol.patch
59@@ -0,0 +1,31 @@
60+From 9e9c4a7e57b96ab29fe6d7545ed09d2e5bddbdec Mon Sep 17 00:00:00 2001
61+From: "djm@openbsd.org" <djm@openbsd.org>
62+Date: Tue, 23 Jan 2018 05:12:12 +0000
63+Subject: [PATCH] upstream commit
64+
65+unbreak support for clients that advertise a protocol
66+version of "1.99" (indicating both v2 and v1 support). Busted by me during
67+SSHv1 purge in r1.358; bz2810, ok dtucker
68+
69+OpenBSD-Commit-ID: e8f9c2bee11afc16c872bb79d6abe9c555bd0e4b
70+
71+Backport-Note: dropped the no-op file header change
72+Origin: backport, https://anongit.mindrot.org/openssh.git/commit/?id=9e9c4a7e5
73+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1863930
74+Last-Update: 2020-03-03
75+
76+---
77+ sshd.c | 4 ++--
78+ 1 file changed, 2 insertions(+), 2 deletions(-)
79+
80+--- a/sshd.c
81++++ b/sshd.c
82+@@ -466,7 +466,7 @@ sshd_exchange_identification(struct ssh
83+ debug("Local version string %.200s", server_version_string);
84+
85+ if (remote_major != 2 ||
86+- (remote_major == 1 && remote_minor != 99)) {
87++ !(remote_major == 1 && remote_minor == 99)) {
88+ s = "Protocol major versions differ.\n";
89+ (void) atomicio(vwrite, sock_out, s, strlen(s));
90+ close(sock_in);
91diff --git a/debian/patches/series b/debian/patches/series
92index bc1fede..6f678bd 100644
93--- a/debian/patches/series
94+++ b/debian/patches/series
95@@ -35,3 +35,5 @@ CVE-2019-6109-1.patch
96 CVE-2019-6109-2.patch
97 CVE-2019-6111-2.patch
98 regress-2020.patch
99+lp-1863930-unbreak-clients-that-advertise-protocol.patch
100+lp-1863930-Fix-logic-bug-in-sshd_exchange_identification.patch

Subscribers

People subscribed via source and target branches