Change-Id: I5abc8b0457cac5f080c8e12d736908ff7030af3d
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/6607
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,66 @@ |
| 0 |
+diff -ru a/paramiko/auth_handler.py b/paramiko/auth_handler.py |
|
| 1 |
+--- a/paramiko/auth_handler.py 2019-01-25 18:56:51.783771842 +0000 |
|
| 2 |
+@@ -603,13 +603,37 @@ |
|
| 3 |
+ return |
|
| 4 |
+ self._send_auth_result(self.auth_username, 'keyboard-interactive', result) |
|
| 5 |
+ |
|
| 6 |
+- _handler_table = {
|
|
| 7 |
++ # TODO: do the same to the other tables, in Transport. |
|
| 8 |
++ # TODO 3.0: MAY make sense to make these tables into actual |
|
| 9 |
++ # classes/instances that can be fed a mode bool or whatever. Or, |
|
| 10 |
++ # alternately (both?) make the message types small classes or enums that |
|
| 11 |
++ # embed this info within themselves (which could also then tidy up the |
|
| 12 |
++ # current 'integer -> human readable short string' stuff in common.py). |
|
| 13 |
++ # TODO: if we do that, also expose 'em publicly. |
|
| 14 |
++ |
|
| 15 |
++ # Messages which should be handled _by_ servers (sent by clients) |
|
| 16 |
++ _server_handler_table = {
|
|
| 17 |
+ MSG_SERVICE_REQUEST: _parse_service_request, |
|
| 18 |
+- MSG_SERVICE_ACCEPT: _parse_service_accept, |
|
| 19 |
+ MSG_USERAUTH_REQUEST: _parse_userauth_request, |
|
| 20 |
++ MSG_USERAUTH_INFO_RESPONSE: _parse_userauth_info_response, |
|
| 21 |
++ } |
|
| 22 |
++ |
|
| 23 |
++ # Messages which should be handled _by_ clients (sent by servers) |
|
| 24 |
++ _client_handler_table = {
|
|
| 25 |
++ MSG_SERVICE_ACCEPT: _parse_service_accept, |
|
| 26 |
+ MSG_USERAUTH_SUCCESS: _parse_userauth_success, |
|
| 27 |
+ MSG_USERAUTH_FAILURE: _parse_userauth_failure, |
|
| 28 |
+ MSG_USERAUTH_BANNER: _parse_userauth_banner, |
|
| 29 |
+ MSG_USERAUTH_INFO_REQUEST: _parse_userauth_info_request, |
|
| 30 |
+- MSG_USERAUTH_INFO_RESPONSE: _parse_userauth_info_response, |
|
| 31 |
+ } |
|
| 32 |
++ |
|
| 33 |
++ # NOTE: prior to the fix for #1283, this was a static dict instead of a |
|
| 34 |
++ # property. Should be backwards compatible in most/all cases. |
|
| 35 |
++ @property |
|
| 36 |
++ def _handler_table(self): |
|
| 37 |
++ if self.transport.server_mode: |
|
| 38 |
++ return self._server_handler_table |
|
| 39 |
++ else: |
|
| 40 |
++ return self._client_handler_table |
|
| 41 |
++ |
|
| 42 |
++ |
|
| 43 |
+diff -ru a/sites/www/changelog.rst b/sites/www/changelog.rst |
|
| 44 |
+--- a/sites/www/changelog.rst 2019-01-25 18:56:51.795771784 +0000 |
|
| 45 |
+@@ -3,6 +3,18 @@ |
|
| 46 |
+ ========= |
|
| 47 |
+ |
|
| 48 |
+ * :release:`1.17.6 <2018-03-12>` |
|
| 49 |
++- :bug:`1283 (1.17+)` Fix exploit (CVE-2018-1000805) in Paramiko's server mode |
|
| 50 |
++ (**not** client mode) where hostile clients could trick the server into |
|
| 51 |
++ thinking they were authenticated without actually submitting valid |
|
| 52 |
++ authentication. |
|
| 53 |
++ |
|
| 54 |
++ Specifically, steps have been taken to start separating client and server |
|
| 55 |
++ related message types in the message handling tables within ``Transport`` and |
|
| 56 |
++ ``AuthHandler``; this work is not complete but enough has been performed to |
|
| 57 |
++ close off this particular exploit (which was the only obvious such exploit |
|
| 58 |
++ for this particular channel). |
|
| 59 |
++ |
|
| 60 |
++ Thanks to Daniel Hoffman for the detailed report. |
|
| 61 |
+ * :bug:`1175 (1.17+)` Fix a security flaw (CVE-2018-7750) in Paramiko's server |
|
| 62 |
+ mode (emphasis on **server** mode; this does **not** impact *client* use!) |
|
| 63 |
+ where authentication status was not checked before processing channel-open |
| ... | ... |
@@ -4,7 +4,7 @@ |
| 4 | 4 |
Summary: Python SSH module |
| 5 | 5 |
Name: paramiko |
| 6 | 6 |
Version: 1.17.6 |
| 7 |
-Release: 1%{?dist}
|
|
| 7 |
+Release: 2%{?dist}
|
|
| 8 | 8 |
License: LGPL |
| 9 | 9 |
Group: System Environment/Security |
| 10 | 10 |
Vendor: VMware, Inc. |
| ... | ... |
@@ -12,6 +12,7 @@ Distribution: Photon |
| 12 | 12 |
URL: http://www.paramiko.org/ |
| 13 | 13 |
Source0: https://github.com/paramiko/paramiko/archive/paramiko-%{version}.tar.gz
|
| 14 | 14 |
%define sha1 paramiko=976685cac8faed4269e09eaa112372cbd0d2803c |
| 15 |
+Patch0: paramiko-CVE-2018-1000805.patch |
|
| 15 | 16 |
BuildArch: noarch |
| 16 | 17 |
|
| 17 | 18 |
BuildRequires: python-setuptools |
| ... | ... |
@@ -40,6 +41,7 @@ Requires: python3-ecdsa > 0.11 |
| 40 | 40 |
Python 3 version. |
| 41 | 41 |
%prep |
| 42 | 42 |
%setup -q |
| 43 |
+%patch0 -p1 |
|
| 43 | 44 |
|
| 44 | 45 |
%build |
| 45 | 46 |
python setup.py build |
| ... | ... |
@@ -67,6 +69,8 @@ python3 setup.py install -O1 --skip-build \ |
| 67 | 67 |
%{python3_sitelib}/*
|
| 68 | 68 |
|
| 69 | 69 |
%changelog |
| 70 |
+* Mon Jan 28 2019 Siju Maliakkal <smaliakkal@vmware.com> 1.17.6-2 |
|
| 71 |
+- Applied patch for CVE-2018-1000805 |
|
| 70 | 72 |
* Thu Apr 19 2018 Xiaolin Li <xiaolinl@vmware.com> 1.17.6-1 |
| 71 | 73 |
- Updated to version 1.17.6, fix CVE-2018-7750 |
| 72 | 74 |
* Thu Sep 07 2017 Kumar Kaushik <kaushikk@vmware.com> 1.17.3-1 |