Version in base suite: 1.2.2+ds1-2+deb10u1 Base version: cacti_1.2.2+ds1-2+deb10u1 Target version: cacti_1.2.2+ds1-2+deb10u2 Base file: /srv/ftp-master.debian.org/ftp/pool/main/c/cacti/cacti_1.2.2+ds1-2+deb10u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/c/cacti/cacti_1.2.2+ds1-2+deb10u2.dsc changelog | 12 +++ patches/CVE-2019-16723.patch | 154 +++++++++++++++++++++++++++++++++++++++++++ patches/CVE-2019-17357.patch | 32 ++++++++ patches/CVE-2019-17358.patch | 42 +++++++++++ patches/series | 3 5 files changed, 243 insertions(+) diff -Nru cacti-1.2.2+ds1/debian/changelog cacti-1.2.2+ds1/debian/changelog --- cacti-1.2.2+ds1/debian/changelog 2019-07-16 19:40:32.000000000 +0000 +++ cacti-1.2.2+ds1/debian/changelog 2019-12-29 18:53:28.000000000 +0000 @@ -1,3 +1,15 @@ +cacti (1.2.2+ds1-2+deb10u2) buster-security; urgency=medium + + * Non-maintainer upload by the Security Team. + * Acknowledgements to Paul Gevers! + * CVE-2019-17358: insufficient validation of form input leading to unsafe + unserialization operations and memory corruption (Closes: #947375). + * CVE-2019-17357: SQL injection vulnerability in graphs.php (Closes: #947374). + * CVE-2019-16723: Authentication bypass allows unprivileged users to view all + graphs (Closes: #941036). + + -- Hugo Lefeuvre Sun, 29 Dec 2019 19:53:28 +0100 + cacti (1.2.2+ds1-2+deb10u1) buster; urgency=medium * Depends i.s.o. Recommends on php-gmp as this is now a requirement of diff -Nru cacti-1.2.2+ds1/debian/patches/CVE-2019-16723.patch cacti-1.2.2+ds1/debian/patches/CVE-2019-16723.patch --- cacti-1.2.2+ds1/debian/patches/CVE-2019-16723.patch 1970-01-01 00:00:00.000000000 +0000 +++ cacti-1.2.2+ds1/debian/patches/CVE-2019-16723.patch 2019-12-29 18:53:28.000000000 +0000 @@ -0,0 +1,154 @@ +Description: fix authorization bypass with modified local_graph_id parameter + This patch addresses CVE-2019-16723. It is a combination of following upstream + patches: + + https://github.com/Cacti/cacti/commit/cfb0733597af97abc92270de4f47cbfa32f9c + + https://github.com/Cacti/cacti/commit/9a1d2ec46d2dde23826c134ca70a0cd3bef43 + + https://github.com/Cacti/cacti/commit/d5f98679a06aa96adfe04f60908f9108cfc9f + + https://github.com/Cacti/cacti/commit/4cecb19f6be8b84fa1c7b6450b66176007cb5 + Patches are left unchanged, just merged together, apart from the addition of + directories=no in graph.php which has nothing to do with security and was + omitted here. +Author: cigamit , ddb4github , Hugo Lefeuvre +Bug: https://github.com/Cacti/cacti/issues/2964 +--- a/graph_image.php 2020-01-13 20:53:51.636352534 +0100 ++++ b/graph_image.php 2020-01-13 20:53:51.628352595 +0100 +@@ -129,7 +129,8 @@ + $rra_id = null; + } + +-$output = rrdtool_function_graph(get_request_var('local_graph_id'), $rra_id, $graph_data_array); ++$null_param = array(); ++$output = rrdtool_function_graph(get_request_var('local_graph_id'), $rra_id, $graph_data_array, '', $null_param, $_SESSION['sess_user_id']); + + if ($output !== false && $output != '') { + /* flush the headers now */ +@@ -142,7 +143,8 @@ + + /* get the error string */ + $graph_data_array['get_error'] = true; +- rrdtool_function_graph(get_request_var('local_graph_id'), $rra_id, $graph_data_array); ++ $null_param = array(); ++ rrdtool_function_graph(get_request_var('local_graph_id'), $rra_id, $graph_data_array, '', $null_param, $_SESSION['sess_user_id']); + + $error = ob_get_contents(); + +--- a/graph_json.php 2020-01-13 20:53:51.636352534 +0100 ++++ b/graph_json.php 2020-01-13 20:53:51.632352564 +0100 +@@ -155,7 +155,8 @@ + $graph_data_array['image_format'] = $gtype; + + if ($config['poller_id'] == 1 || read_config_option('storage_location')) { +- $output = rrdtool_function_graph(get_request_var('local_graph_id'), $rra_id, $graph_data_array); ++ $xport_meta = array(); ++ $output = rrdtool_function_graph(get_request_var('local_graph_id'), $rra_id, $graph_data_array, '', $xport_meta, $_SESSION['sess_user_id']); + + ob_end_clean(); + } else { +@@ -217,7 +218,8 @@ + + $graph_data_array['get_error'] = true; + +- rrdtool_function_graph(get_request_var('local_graph_id'), $rra_id, $graph_data_array); ++ $null_param = array(); ++ rrdtool_function_graph(get_request_var('local_graph_id'), $rra_id, $graph_data_array, '', $null_param, $_SESSION['sess_user_id']); + + $error = ob_get_contents(); + +--- a/graph.php 2020-01-13 20:53:51.636352534 +0100 ++++ b/graph.php 2020-01-13 21:01:20.773002579 +0100 +@@ -532,10 +532,16 @@ + print "" . __('RRDtool Graph Syntax') . "\n"; + print "
\n";
+ 	print "" . __('RRDtool Command:') . "
"; +- print @rrdtool_function_graph(get_request_var('local_graph_id'), get_request_var('rra_id'), $graph_data_array); ++ ++ $null_param = array(); ++ print @rrdtool_function_graph(get_request_var('local_graph_id'), get_request_var('rra_id'), $graph_data_array, '', $null_param, $_SESSION['sess_user_id']); + unset($graph_data_array['print_source']); + print "" . __('RRDtool Says:') . "
"; +- print @rrdtool_function_graph(get_request_var('local_graph_id'), get_request_var('rra_id'), $graph_data_array); ++ if ($config['poller_id'] == 1) { ++ print @rrdtool_function_graph(get_request_var('local_graph_id'), get_request_var('rra_id'), $graph_data_array, '', $null_param, $_SESSION['sess_user_id']); ++ } else { ++ print __esc('Not Checked'); ++ } + print "
\n"; + print "\n"; + exit; +--- a/graphs.php 2020-01-13 20:53:51.636352534 +0100 ++++ b/graphs.php 2020-01-13 20:53:51.632352564 +0100 +@@ -1538,15 +1538,17 @@ + $graph_data_array['print_source'] = 1; + $graph_data_array['graph_end'] = $graph_end; + $graph_data_array['graph_start'] = $graph_start; ++ ++ $null_param = array(); + ?> + +
+
+
+-
++
+
+ +-
++
+
+ + +
+
+- +-
++ ++
+
+