Backported patch for phpMyAdmin 4.4.x; mysql.user and mysql.db show code instead of usernames. Further details: - https://github.com/phpmyadmin/phpmyadmin/issues/12483 - https://github.com/phpmyadmin/phpmyadmin/issues/12341 - https://github.com/phpmyadmin/phpmyadmin/issues/12479 - https://github.com/phpmyadmin/phpmyadmin/commit/38cf23470728537bed4330a0e669fa636d157eab - https://github.com/phpmyadmin/phpmyadmin/commit/cbd6137c03a7cf0db7b361bf34656e4c046d863b - https://github.com/phpmyadmin/phpmyadmin/commit/48b6dd58d8d7efa30b5330108eb3fd38f5230e23 - https://github.com/phpmyadmin/phpmyadmin/commit/72cc1f9f513cb7252e40e46ce74f5b8ce2449ffc - https://github.com/phpmyadmin/phpmyadmin/commit/265efb046fe50acb8ca277da533911414af177d3 - https://github.com/phpmyadmin/phpmyadmin/commit/ed6188d2c89deb7d46df958b07de5cf0ca24f2f7 --- phpMyAdmin-4.4.15.10/js/config.js 2017-01-23 20:08:47.000000000 +0100 +++ phpMyAdmin-4.4.15.10/js/config.js 2018-05-16 14:53:23.000000000 +0200 @@ -7,7 +7,7 @@ * Unbind all event handlers before tearing down a page */ AJAX.registerTeardown('config.js', function () { - $('input[id], select[id], textarea[id]').unbind('change').unbind('keyup'); + $('.optbox input[id], .optbox select[id], .optbox textarea[id]').unbind('change').unbind('keyup'); $('input[type=button][name=submit_reset]').unbind('click'); $('div.tabs_contents').undelegate(); $('#import_local_storage, #export_local_storage').unbind('click'); @@ -444,7 +444,7 @@ var $field = $(field); var errors = {}; validate_field($field, isKeyUp, errors); - validate_fieldset($field.closest('fieldset'), isKeyUp, errors); + validate_fieldset($field.closest('fieldset.optbox'), isKeyUp, errors); displayErrors(errors); } @@ -479,8 +479,8 @@ AJAX.registerOnload('config.js', function () { // register validators and mark custom values - var $elements = $('input[id], select[id], textarea[id]'); - $('input[id], select[id], textarea[id]').each(function () { + var $elements = $('.optbox input[id], .optbox select[id], .optbox textarea[id]'); + $('.optbox input[id], .optbox select[id], .optbox textarea[id]').each(function () { markField(this); var $el = $(this); $el.bind('change', function () { @@ -511,7 +511,7 @@ validate_field($elements[i], false, errors); } // run all fieldset validators - $('fieldset').each(function () { + $('fieldset.optbox').each(function () { validate_fieldset(this, false, errors); }); --- phpMyAdmin-4.4.15.10/libraries/DisplayResults.class.php 2017-01-23 20:08:47.000000000 +0100 +++ phpMyAdmin-4.4.15.10/libraries/DisplayResults.class.php 2018-05-16 14:47:47.000000000 +0200 @@ -3116,7 +3116,7 @@ $divider = strpos($link_relations['default_page'], '?') ? '&' : '?'; if (empty($link_relations['link_dependancy_params'])) { return $link_relations['default_page'] - . PMA_URL_getCommon($linking_url_params, 'html', $divider); + . PMA_URL_getCommon($linking_url_params, 'raw', $divider); } foreach ($link_relations['link_dependancy_params'] as $new_param) { @@ -3140,7 +3140,7 @@ } return $link_relations['default_page'] - . PMA_URL_getCommon($linking_url_params, 'html', $divider); + . PMA_URL_getCommon($linking_url_params, 'raw', $divider); } --- phpMyAdmin-4.4.15.10/libraries/navigation/NavigationHeader.class.php 2017-01-23 20:08:47.000000000 +0100 +++ phpMyAdmin-4.4.15.10/libraries/navigation/NavigationHeader.class.php 2018-05-16 15:13:54.000000000 +0200 @@ -93,9 +93,9 @@ $logo_link = trim( htmlspecialchars($GLOBALS['cfg']['NavigationLogoLink']) ); - $parsed = parse_url($logo_link); - /* Allow only links with http/https */ - if (! isset($parsed['scheme']) || ! in_array(strtolower($parsed['scheme']), array('http', 'https'))) { + // prevent XSS, see PMASA-2013-9 + // if link has protocol, allow only http and https + if (! PMA_checkLink($logo_link, true)) { $logo_link = 'index.php'; } $retval .= '