Fixed CVE-2017-2661, support python3-clufter
This commit is contained in:
parent
195f96ae8d
commit
d9cf0440bb
138
bz1428350-01-clufter.patch
Normal file
138
bz1428350-01-clufter.patch
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
From c5f8001c6f8aad82a6c54311d39111cfa64cd2b9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
|
||||||
|
Date: Mon, 20 Mar 2017 17:11:32 +0100
|
||||||
|
Subject: [PATCH 1/3] cli: skip superfluous text -> bytes conversion on
|
||||||
|
clufter's output
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Respective outputs are already represented with bytes (as 'bytestring'
|
||||||
|
protocol suggests), and moreover, such bytes cannot be "encoded" in
|
||||||
|
Python 3 otherwise leading to AttributeError (bytes object has no
|
||||||
|
attribute encode) exception.
|
||||||
|
|
||||||
|
Note that this is only relevant in Python 3 context, which pcs uses
|
||||||
|
by default in python3-charged distros (e.g. Fedora) and which is now
|
||||||
|
supported in clufter (which enabled a discovery of this discrepancy):
|
||||||
|
http://oss.clusterlabs.org/pipermail/users/2017-March/005323.html
|
||||||
|
|
||||||
|
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
|
||||||
|
---
|
||||||
|
pcs/config.py | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pcs/config.py b/pcs/config.py
|
||||||
|
index d7c30a21..8b5bb166 100644
|
||||||
|
--- a/pcs/config.py
|
||||||
|
+++ b/pcs/config.py
|
||||||
|
@@ -698,14 +698,14 @@ def config_import_cman(argv):
|
||||||
|
config_backup_add_version_to_tarball(tarball)
|
||||||
|
utils.tar_add_file_data(
|
||||||
|
tarball,
|
||||||
|
- clufter_args_obj.cib["passout"].encode("utf-8"),
|
||||||
|
+ clufter_args_obj.cib["passout"],
|
||||||
|
"cib.xml",
|
||||||
|
**file_list["cib.xml"]["attrs"]
|
||||||
|
)
|
||||||
|
if output_format == "cluster.conf":
|
||||||
|
utils.tar_add_file_data(
|
||||||
|
tarball,
|
||||||
|
- clufter_args_obj.ccs_pcmk["passout"].encode("utf-8"),
|
||||||
|
+ clufter_args_obj.ccs_pcmk["passout"],
|
||||||
|
"cluster.conf",
|
||||||
|
**file_list["cluster.conf"]["attrs"]
|
||||||
|
)
|
||||||
|
@@ -726,7 +726,7 @@ def config_import_cman(argv):
|
||||||
|
)("bytestring")
|
||||||
|
utils.tar_add_file_data(
|
||||||
|
tarball,
|
||||||
|
- corosync_conf_data.encode("utf-8"),
|
||||||
|
+ corosync_conf_data,
|
||||||
|
"corosync.conf",
|
||||||
|
**file_list["corosync.conf"]["attrs"]
|
||||||
|
)
|
||||||
|
@@ -744,7 +744,7 @@ def config_import_cman(argv):
|
||||||
|
)("bytestring")
|
||||||
|
utils.tar_add_file_data(
|
||||||
|
tarball,
|
||||||
|
- uidgid_data.encode("utf-8"),
|
||||||
|
+ uidgid_data,
|
||||||
|
"uidgid.d/" + filename,
|
||||||
|
**file_list["uidgid.d"]["attrs"]
|
||||||
|
)
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
||||||
|
|
||||||
|
From 647fc814f482f14c70fb569fd4fd3b494e57d7c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Jelinek <tojeline@redhat.com>
|
||||||
|
Date: Wed, 22 Mar 2017 18:41:33 +0100
|
||||||
|
Subject: [PATCH 2/3] fix writing clufter output to file with Python 3
|
||||||
|
|
||||||
|
---
|
||||||
|
pcs/config.py | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pcs/config.py b/pcs/config.py
|
||||||
|
index 8b5bb166..b42c5983 100644
|
||||||
|
--- a/pcs/config.py
|
||||||
|
+++ b/pcs/config.py
|
||||||
|
@@ -676,7 +676,7 @@ def config_import_cman(argv):
|
||||||
|
if output_format in ("pcs-commands", "pcs-commands-verbose"):
|
||||||
|
ok, message = utils.write_file(
|
||||||
|
dry_run_output,
|
||||||
|
- clufter_args_obj.output["passout"]
|
||||||
|
+ clufter_args_obj.output["passout"].decode()
|
||||||
|
)
|
||||||
|
if not ok:
|
||||||
|
utils.err(message)
|
||||||
|
@@ -845,7 +845,7 @@ def config_export_pcs_commands(argv, verbose=False):
|
||||||
|
if output_file:
|
||||||
|
ok, message = utils.write_file(
|
||||||
|
output_file,
|
||||||
|
- clufter_args_obj.output["passout"]
|
||||||
|
+ clufter_args_obj.output["passout"].decode()
|
||||||
|
)
|
||||||
|
if not ok:
|
||||||
|
utils.err(message)
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
||||||
|
|
||||||
|
From c5d73581c8bacfe992f863b49e5902fc33198503 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Jelinek <tojeline@redhat.com>
|
||||||
|
Date: Wed, 22 Mar 2017 18:03:09 +0100
|
||||||
|
Subject: [PATCH 3/3] do not colorize clufter output if saved to a file
|
||||||
|
|
||||||
|
Clufter improved detecting if the color mode should be enabled so we can
|
||||||
|
left the decision to clufter completely.
|
||||||
|
---
|
||||||
|
pcs/config.py | 4 ----
|
||||||
|
1 file changed, 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pcs/config.py b/pcs/config.py
|
||||||
|
index b42c5983..04ef02f1 100644
|
||||||
|
--- a/pcs/config.py
|
||||||
|
+++ b/pcs/config.py
|
||||||
|
@@ -627,8 +627,6 @@ def config_import_cman(argv):
|
||||||
|
"batch": True,
|
||||||
|
"sys": "linux",
|
||||||
|
"dist": dist,
|
||||||
|
- # Make it work on RHEL6 as well for sure
|
||||||
|
- "color": "always" if sys.stdout.isatty() else "never"
|
||||||
|
}
|
||||||
|
if interactive:
|
||||||
|
if "EDITOR" not in os.environ:
|
||||||
|
@@ -802,8 +800,6 @@ def config_export_pcs_commands(argv, verbose=False):
|
||||||
|
"batch": True,
|
||||||
|
"sys": "linux",
|
||||||
|
"dist": dist,
|
||||||
|
- # Make it work on RHEL6 as well for sure
|
||||||
|
- "color": "always" if sys.stdout.isatty() else "never",
|
||||||
|
"coro": settings.corosync_conf_file,
|
||||||
|
"ccs": settings.cluster_conf_file,
|
||||||
|
"start_wait": "60",
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
@ -0,0 +1,48 @@
|
|||||||
|
From 3b23bdc378b6b5a7a5d254e3b4a35bcc10b7e81a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ondrej Mular <omular@redhat.com>
|
||||||
|
Date: Sat, 4 Mar 2017 14:01:43 +0100
|
||||||
|
Subject: [PATCH] web UI: fixed XSS vulnerability CVE-2017-2661
|
||||||
|
|
||||||
|
---
|
||||||
|
pcsd/public/js/nodes-ember.js | 4 ++--
|
||||||
|
pcsd/public/js/pcsd.js | 2 +-
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pcsd/public/js/nodes-ember.js b/pcsd/public/js/nodes-ember.js
|
||||||
|
index cb2f4d16..41fede89 100644
|
||||||
|
--- a/pcsd/public/js/nodes-ember.js
|
||||||
|
+++ b/pcsd/public/js/nodes-ember.js
|
||||||
|
@@ -75,7 +75,7 @@ Pcs = Ember.Application.createWithMixins({
|
||||||
|
var banned_options = ["SBD_OPTS", "SBD_WATCHDOG_DEV", "SBD_PACEMAKER"];
|
||||||
|
$.each(this.get("sbd_config"), function(opt, val) {
|
||||||
|
if (banned_options.indexOf(opt) == -1) {
|
||||||
|
- out += '<tr><td>' + opt + '</td><td>' + val + '</td></tr>\n';
|
||||||
|
+ out += '<tr><td>' + htmlEncode(opt) + '</td><td>' + htmlEncode(val) + '</td></tr>\n';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return out + '</table>';
|
||||||
|
@@ -879,7 +879,7 @@ Pcs.ResourceObj = Ember.Object.extend({
|
||||||
|
}.property("status_val"),
|
||||||
|
show_status: function() {
|
||||||
|
return '<span style="' + this.get('status_style') + '">'
|
||||||
|
- + this.get('status') + (this.get("is_unmanaged") ? " (unmanaged)" : "")
|
||||||
|
+ + htmlEncode(this.get('status')) + (this.get("is_unmanaged") ? " (unmanaged)" : "")
|
||||||
|
+ '</span>';
|
||||||
|
}.property("status_style", "disabled"),
|
||||||
|
status_class: function() {
|
||||||
|
diff --git a/pcsd/public/js/pcsd.js b/pcsd/public/js/pcsd.js
|
||||||
|
index c96f9baa..6f57de0f 100644
|
||||||
|
--- a/pcsd/public/js/pcsd.js
|
||||||
|
+++ b/pcsd/public/js/pcsd.js
|
||||||
|
@@ -821,7 +821,7 @@ function auth_nodes_dialog(unauth_nodes, callback_success, callback_success_one)
|
||||||
|
|
||||||
|
dialog_obj.find('#auth_nodes_list').empty();
|
||||||
|
unauth_nodes.forEach(function(node) {
|
||||||
|
- dialog_obj.find('#auth_nodes_list').append("\t\t\t<tr><td>" + node + '</td><td><input type="password" name="' + node + '-pass"></td></tr>\n');
|
||||||
|
+ dialog_obj.find('#auth_nodes_list').append("\t\t\t<tr><td>" + htmlEncode(node) + '</td><td><input type="password" name="' + htmlEncode(node) + '-pass"></td></tr>\n');
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
15
pcs.spec
15
pcs.spec
@ -1,6 +1,6 @@
|
|||||||
Name: pcs
|
Name: pcs
|
||||||
Version: 0.9.156
|
Version: 0.9.156
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: https://github.com/ClusterLabs/pcs
|
URL: https://github.com/ClusterLabs/pcs
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
@ -21,6 +21,8 @@ Patch0: fedfix.patch
|
|||||||
Patch1: fix-test.patch
|
Patch1: fix-test.patch
|
||||||
Patch2: fix-libcurl-issues-in-python3.patch
|
Patch2: fix-libcurl-issues-in-python3.patch
|
||||||
Patch3: fix-linking-fonts-to-pcsd.patch
|
Patch3: fix-linking-fonts-to-pcsd.patch
|
||||||
|
Patch4: bz1434111-01-web-UI-fixed-XSS-vulnerability-CVE-2017-2661.patch
|
||||||
|
Patch5: bz1428350-01-clufter.patch
|
||||||
|
|
||||||
# git for patches
|
# git for patches
|
||||||
BuildRequires: git
|
BuildRequires: git
|
||||||
@ -96,8 +98,7 @@ Requires: openssl
|
|||||||
Requires: corosync
|
Requires: corosync
|
||||||
Requires: pacemaker
|
Requires: pacemaker
|
||||||
Requires: pacemaker-cli
|
Requires: pacemaker-cli
|
||||||
# clufter currently doesn't have python3 package
|
Requires: python3-clufter => 0.70.0
|
||||||
Requires: python-clufter => 0.59.0
|
|
||||||
# for post, preun and postun macros
|
# for post, preun and postun macros
|
||||||
Requires(post): systemd
|
Requires(post): systemd
|
||||||
Requires(preun): systemd
|
Requires(preun): systemd
|
||||||
@ -142,6 +143,10 @@ UpdateTimestamps -p1 %{PATCH1}
|
|||||||
UpdateTimestamps -p1 %{PATCH2}
|
UpdateTimestamps -p1 %{PATCH2}
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
UpdateTimestamps -p1 %{PATCH3}
|
UpdateTimestamps -p1 %{PATCH3}
|
||||||
|
%patch4 -p1
|
||||||
|
UpdateTimestamps -p1 %{PATCH4}
|
||||||
|
%patch5 -p1
|
||||||
|
UpdateTimestamps -p1 %{PATCH5}
|
||||||
|
|
||||||
mkdir -p pcsd/.bundle
|
mkdir -p pcsd/.bundle
|
||||||
cp -f %SOURCE1 pcsd/.bundle/config
|
cp -f %SOURCE1 pcsd/.bundle/config
|
||||||
@ -280,6 +285,10 @@ end
|
|||||||
%exclude %{python3_sitelib}/pcs/pcs
|
%exclude %{python3_sitelib}/pcs/pcs
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 23 2017 Tomas Jelinek <tojeline@redhat.com> - 0.9.156-2
|
||||||
|
- Fixed Cross-site scripting (XSS) vulnerability in web UI CVE-2017-2661
|
||||||
|
- Re-added support for clufter as it is now available for Python 3
|
||||||
|
|
||||||
* Wed Feb 22 2017 Tomas Jelinek <tojeline@redhat.com> - 0.9.156-1
|
* Wed Feb 22 2017 Tomas Jelinek <tojeline@redhat.com> - 0.9.156-1
|
||||||
- Rebased to latest upstream sources (see CHANGELOG.md)
|
- Rebased to latest upstream sources (see CHANGELOG.md)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user