CVE-2018-7749: Improper Authentication (CWE-287)
value: The SSH server implementation of AsyncSSH before 1.12.1 does not properly check whether authentication is completed before processing other requests. A customized SSH client can simply skip the authentication step.
CWE description: When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct.
CVSS v3 base score: 9.8
Published: 2018-03-12T19:29Z
Repository: https://github.com/ronf/asyncssh
Language: Other
Files changed: README.rst, asyncssh/version.py, docs/changes.rst
Commit date: 2018-03-10 10:27:28 -0800
Commit message: Bump version number up to 1.12.1 and update change log and copyright

Diff: diff --git a/README.rst b/README.rst
index df927fc..e39581c 100644
--- a/README.rst
+++ b/README.rst
@@ -75,11 +75,11 @@ __ http://asyncssh.readthedocs.io/en/stable/api.html#authorized-keys
 License
 -------
 
 This package is released under the following terms:
 
-  Copyright (c) 2013-2017 by Ron Frederick <ronf@timeheart.net>.
+  Copyright (c) 2013-2018 by Ron Frederick <ronf@timeheart.net>.
   All rights reserved.
 
   This program and the accompanying materials are made available under
   the terms of the **Eclipse Public License v1.0** which accompanies
   this distribution and is available at:
diff --git a/asyncssh/version.py b/asyncssh/version.py
index 225f662..4238824 100644
--- a/asyncssh/version.py
+++ b/asyncssh/version.py
@@ -16,6 +16,6 @@ __author__ = 'Ron Frederick'
 
 __author_email__ = 'ronf@timeheart.net'
 
 __url__ = 'http://asyncssh.timeheart.net'
 
-__version__ = '1.12.0'
+__version__ = '1.12.1'
diff --git a/docs/changes.rst b/docs/changes.rst
index 36469d3..bb808b3 100644
--- a/docs/changes.rst
+++ b/docs/changes.rst
@@ -1,10 +1,45 @@
 .. currentmodule:: asyncssh
 
 Change Log
 ==========
 
+Release 1.12.1 (10 Mar 2018)
+----------------------------
+
+* Implemented a fix for CVE-2018-7749, where a modified SSH client could
+  request that an AsyncSSH server perform operations before authentication
+  had completed. Thanks go to Matthijs Kooijman for discovering and
+  reporting this issue and helping to review the fix.
+
+* Added a non-blocking collect_output() method to SSHClientProcess to
+  allow applications to retrieve data received on an output stream
+  without blocking. This call can be called multiple times and freely
+  intermixed with regular read calls with a guarantee that output will
+  always be returned in order and without duplication.
+
+* Updated debug logging implementation to make it more maintainable, and
+  to fix an issue where unprocessed packets were not logged in some cases.
+
+* Extended the support below for non-ASCII characters in comments to apply
+  to X.509 certificates, allowing an optional encoding to be passed in to
+  get_comment() and set_comment() and a get_comment_bytes() function to
+  get the raw comment bytes without performing Unicode decoding.
+
+* Fixed an issue where a UnicodeDecodeError could be reported in some
+  cases instead of a KeyEncryptionError when a private key was imported
+  using the wrong passphrase.
+
+* Fixed the reporting of the MAC algorithm selected during key exchange to
+  properly report the cipher name for GCM and Chacha ciphers that don't
+  use a separate MAC algorithm. The correct value was being returned in
+  queries after the key exchange was complete, but the logging was being
+  done before this adjustment was made.
+
+* Fixed the documentation of connection_made() in SSHSession subclasses
+  to properly reflect the type of SSHChannel objects passed to them.
+
 Release 1.12.0 (5 Feb 2018)
 ---------------------------
 
 * Enhanced AsyncSSH logging framework to provide detailed logging of
   events in the connection, channel, key exchange, authentication,

Vulnerable code:   Copyright (c) 2013-2017 by Ron Frederick <ronf@timeheart.net>.
__version__ = '1.12.0'
Fixed code:   Copyright (c) 2013-2018 by Ron Frederick <ronf@timeheart.net>.
__version__ = '1.12.1'
Release 1.12.1 (10 Mar 2018)
----------------------------

* Implemented a fix for CVE-2018-7749, where a modified SSH client could
  request that an AsyncSSH server perform operations before authentication
  had completed. Thanks go to Matthijs Kooijman for discovering and
  reporting this issue and helping to review the fix.

* Added a non-blocking collect_output() method to SSHClientProcess to
  allow applications to retrieve data received on an output stream
  without blocking. This call can be called multiple times and freely
  intermixed with regular read calls with a guarantee that output will
  always be returned in order and without duplication.

* Updated debug logging implementation to make it more maintainable, and
  to fix an issue where unprocessed packets were not logged in some cases.

* Extended the support below for non-ASCII characters in comments to apply
  to X.509 certificates, allowing an optional encoding to be passed in to
  get_comment() and set_comment() and a get_comment_bytes() function to
  get the raw comment bytes without performing Unicode decoding.

* Fixed an issue where a UnicodeDecodeError could be reported in some
  cases instead of a KeyEncryptionError when a private key was imported
  using the wrong passphrase.

* Fixed the reporting of the MAC algorithm selected during key exchange to
  properly report the cipher name for GCM and Chacha ciphers that don't
  use a separate MAC algorithm. The correct value was being returned in
  queries after the key exchange was complete, but the logging was being
  done before this adjustment was made.

* Fixed the documentation of connection_made() in SSHSession subclasses
  to properly reflect the type of SSHChannel objects passed to them.