From d6afe6ccf6e20bf3b8631a64df016f5098804033 Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Tue, 12 May 2015 11:21:47 +0530 Subject: [PATCH 1/3] bug #4899 [security] CSRF vulnerability in setup Signed-off-by: Madhura Jayaratne --- ChangeLog | 3 +++ libraries/url_generating.lib.php | 1 + setup/frames/form.inc.php | 4 ++-- setup/frames/index.inc.php | 11 +++++------ setup/frames/menu.inc.php | 7 ++++--- setup/frames/servers.inc.php | 4 ++-- setup/index.php | 4 ++-- setup/lib/form_processing.lib.php | 17 ++++++++++------- setup/validate.php | 6 ++++-- 9 files changed, 33 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index d8dd18561f..7702dc1a3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,9 @@ phpMyAdmin - ChangeLog - bug Error when the reporting server is down - bug Escape database and table names for partition maintenance +4.4.6.1 (Not yet released) +- bug #4899 [security] CSRF vulnerability in setup + 4.4.6.0 (2015-05-07) - bug #4890 webkitStorageInfo and webkitIndexedDB is deprecated - bug #4892 Undefined variable: unique_conditions diff --git a/libraries/url_generating.lib.php b/libraries/url_generating.lib.php index bc078ad9f1..799489b225 100644 --- a/libraries/url_generating.lib.php +++ b/libraries/url_generating.lib.php @@ -179,6 +179,7 @@ function PMA_URL_getCommon($params = array(), $encode = 'html', $divider = '?') if (isset($GLOBALS['server']) && $GLOBALS['server'] != $GLOBALS['cfg']['ServerDefault'] && ! isset($params['server']) + && ! defined('PMA_SETUP') ) { $params['server'] = $GLOBALS['server']; } diff --git a/setup/frames/form.inc.php b/setup/frames/form.inc.php index 2fb2cda0f4..4e25bfe1d2 100644 --- a/setup/frames/form.inc.php +++ b/setup/frames/form.inc.php @@ -19,8 +19,8 @@ require_once './setup/lib/form_processing.lib.php'; require './libraries/config/setup.forms.php'; -$formset_id = filter_input(INPUT_GET, 'formset'); -$mode = filter_input(INPUT_GET, 'mode'); +$formset_id = isset($_GET['formset']) ? $_GET['formset'] : null; +$mode = isset($_GET['mode']) ? $_GET['mode'] : null; if (! isset($forms[$formset_id])) { PMA_fatalError(__('Incorrect formset, check $formsets array in setup/frames/form.inc.php!')); } diff --git a/setup/frames/index.inc.php b/setup/frames/index.inc.php index c291c3c327..2c341ec2c9 100644 --- a/setup/frames/index.inc.php +++ b/setup/frames/index.inc.php @@ -174,12 +174,12 @@ if ($cf->getServerCount() > 0) { echo '' . htmlspecialchars($cf->getServerDSN($id)) . ''; echo ''; echo ''; - echo '' + echo '' . __('Edit') . ''; echo ' | '; - echo '' + echo '' . __('Delete') . ''; echo ''; echo ''; @@ -308,7 +308,6 @@ echo ''; diff --git a/setup/frames/menu.inc.php b/setup/frames/menu.inc.php index d82dce07f2..a78c84d689 100644 --- a/setup/frames/menu.inc.php +++ b/setup/frames/menu.inc.php @@ -10,11 +10,11 @@ if (!defined('PHPMYADMIN')) { exit; } -$formset_id = filter_input(INPUT_GET, 'formset'); +$formset_id = isset($_GET['formset']) ? $_GET['formset'] : null; $separator = PMA_URL_getArgSeparator('html'); echo '