The patch for sarge, also fixes CVE-2005-3301 and  CAN-2005-2869.

-- 
 .''`.    Piotr Roszatycki, Netia SA
: :' :    mailto:[EMAIL PROTECTED]
`. `'     mailto:[EMAIL PROTECTED]
  `-
=== debian/changelog
==================================================================
--- debian/changelog	(revision 251)
+++ debian/changelog	(local)
@@ -1,3 +1,43 @@
+phpmyadmin (4:2.6.2-3sarge1) stable-security; urgency=high
+
+  * Security fix: Several Cross-Site Scripting vulnerabilities.
+    See http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2869
+    Closes: #328501.
+  * Security fix: (1) Local file inclusion vulnerability and (2) Cross-Site
+    Scripting vulnerability.
+    See http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3300
+    See http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3301
+    Closes: #335306, #335513.
+
+  * Modified 001-config.patch:
+    - Append the Debian package revision to the upstream version. Marks that
+      this phpMyAdmin package has additional Debian modifications so the
+      bugreports won't confuse phpMyAdmin's coders.
+  * New 100-bug1223319.patch:
+    - Use eval for config file including to catch parse errors. The patch is
+      required by further patch which fixes XSS.
+  * New 101-patch1258978.patch:
+    - Move common code for error pages out of common.lib.php. The patch is
+      required by further patch which fixes XSS.
+  * New 102-bug1240880.patch:
+    - XSS on the cookie-based login panel.
+  * New 102-bug1249239.patch:
+    - XSS vulnerability on Create page.
+  * New 102-bug1252124.patch:
+    - XSS on table creation page.
+  * New 102-bug1265740.patch:
+    - Protect against possible XSS, move input sanitizing to special file.
+  * New 102-bug1283552.patch:
+    - XSS on username.
+  * New 102-bug_XSS_on_header.inc.php.patch:
+    - XSS on header.inc.php.
+  * New 103-bug_CVE-2005-3300.patch:
+    - Cross-Site Scripting vulnerability.
+  * New 103-bug_CVE-2005-3301.patch:
+    - Local file inclusion vulnerability.
+
+ -- Piotr Roszatycki <[EMAIL PROTECTED]>  Mon, 24 Oct 2005 21:02:38 +0200
+
 phpmyadmin (4:2.6.2-3) unstable; urgency=high
 
   * Fix apache2.conf only for 4:2.6.2-1 release. Closes: #307901 (critical),
=== debian/packages
==================================================================
--- debian/packages	(revision 251)
+++ debian/packages	(local)
@@ -68,6 +68,12 @@
  for webserver in apache apache-perl apache-ssl apache2; do
      yada install -conf -ucf -into /etc/$webserver/conf.d -as phpmyadmin.conf debian/conf/apache.conf
  done
+ .
+ version=$(grep "define.'PMA_VERSION" libraries/defines.lib.php | sed "s/.*, '//; s/'.*//")-Debian-${VERSION##*-}
+ sed -e 's/@VERSION@/'"$version"'/' \
+     $ROOT/usr/share/phpmyadmin/config.inc.php > $ROOT/usr/share/phpmyadmin/config.inc.php.tmp
+ mv -f $ROOT/usr/share/phpmyadmin/config.inc.php.tmp $ROOT/usr/share/phpmyadmin/config.inc.php
+ .
  yada symlink -into /usr/share/phpmyadmin -as .htaccess /etc/phpmyadmin/htaccess
  yada symlink -into /var/www /usr/share/phpmyadmin
  yada symlink -into /usr/share/phpmyadmin /etc/phpmyadmin/config.header.inc.php
=== debian/patches/001-config.patch
==================================================================
--- debian/patches/001-config.patch	(revision 251)
+++ debian/patches/001-config.patch	(local)
@@ -43,7 +43,7 @@
  $cfg['Servers'][$i]['user']          = 'root';      // MySQL user
  $cfg['Servers'][$i]['password']      = '';          // MySQL password (only needed
                                                      // with 'config' auth_type)
-@@ -838,6 +839,13 @@
+@@ -838,6 +839,17 @@
   */
  set_magic_quotes_runtime(0);
  
@@ -53,7 +53,11 @@
 + */
 +include('/etc/phpmyadmin/config.inc.php');
 +
++if (!defined('PMA_VERSION')) {
++    define('PMA_VERSION', '@VERSION@');
++}
 +
++
  /**
   * File Revision - do not change either!
   */
=== debian/patches/100-bug1223319.patch
==================================================================
--- debian/patches/100-bug1223319.patch	(revision 251)
+++ debian/patches/100-bug1223319.patch	(local)
@@ -0,0 +1,31 @@
+Use eval for config file including to catch parse errors (bug #1223319),
+on error page display config file that actually failed.
+
+diff -u -r2.138 -r2.139
+--- phpMyAdmin/libraries/common.lib.php	2005/07/11 05:51:13	2.138
++++ phpMyAdmin/libraries/common.lib.php	2005/07/13 11:16:51	2.139
+@@ -85,9 +85,12 @@
+  * versions of phpMyAdmin/php/mysql...
+  */
+ $old_error_reporting = error_reporting(0);
+-include_once($cfgfile_to_load);
+-// Include failed
+-if (!isset($cfgServers) && !isset($cfg['Servers'])) {
++// We can not use include as it fails on parse error
++$config_fd = fopen($cfgfile_to_load, 'r');
++$result = eval('?>' . fread($config_fd, filesize($cfgfile_to_load)));
++fclose($config_fd);
++// Eval failed
++if ($result === FALSE || (!isset($cfgServers) && !isset($cfg['Servers']))) {
+     // Creates fake settings
+     $cfg = array('DefaultLang'           => 'en-iso-8859-1',
+                     'AllowAnywhereRecoding' => FALSE);
+@@ -118,7 +121,7 @@
+ <h1>phpMyAdmin - <?php echo $strError; ?></h1>
+ <p>
+ <?php echo $strConfigFileError; ?><br /><br />
+-<a href="config.inc.php" target="_blank">config.inc.php</a>
++<a href="<?php echo $cfgfile_to_load; ?>" target="_blank"><?php echo $cfgfile_to_load; ?></a>
+ </p>
+ </body>
+ 
=== debian/patches/101-patch1258978.patch
==================================================================
--- debian/patches/101-patch1258978.patch	(revision 251)
+++ debian/patches/101-patch1258978.patch	(local)
@@ -0,0 +1,162 @@
+patch #1258978, move common
+code for error pages out of common.lib.php, thanks to Sebastian Mendel
+
+diff -u -r2.147 -r2.148
+--- phpMyAdmin/libraries/common.lib.php	2005/08/16 17:49:57	2.147
++++ phpMyAdmin/libraries/common.lib.php	2005/08/20 13:23:35	2.148
+@@ -96,37 +96,17 @@
+                     'AllowAnywhereRecoding' => FALSE);
+     // Loads the language file
+     require_once('./libraries/select_lang.lib.php');
+-    // Sends the Content-Type header
+-    header('Content-Type: text/html; charset=' . $charset);
+     // Displays the error message
+-    ?>
+-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="<?php echo $available_languages[$lang][2]; ?>" lang="<?php echo $available_languages[$lang][2]; ?>" dir="<?php echo $text_dir; ?>">
+-
+-<head>
+-<title>phpMyAdmin</title>
+-<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset; ?>" />
+-
+-<style type="text/css">
+-<!--
+-body  {font-family: sans-serif; font-size: small; color: #000000; background-color: #F5F5F5}
+-h1    {font-family: sans-serif; font-size: large; font-weight: bold}
+-//-->
+-</style>
+-</head>
+-
+-
+-<body bgcolor="#ffffff">
+-<h1>phpMyAdmin - <?php echo $strError; ?></h1>
+-<p>
+-<?php echo $strConfigFileError; ?><br /><br />
+-<a href="<?php echo $cfgfile_to_load; ?>" target="_blank"><?php echo $cfgfile_to_load; ?></a>
+-</p>
+-</body>
+-
+-</html>
+-    <?php
++    // (do not use &amp; for parameters sent by header)
++    header( 'Location: error.php'
++            . '?lang='  . urlencode( $available_languages[$lang][2] )
++            . '&char='  . urlencode( $charset )
++            . '&dir='   . urlencode( $text_dir )
++            . '&type='  . urlencode( $strError )
++            . '&error=' . urlencode( $strConfigFileError . '<br /><br />'
++                                    . '<a href="' . $cfgfile_to_load . '" '
++                                    . 'target="_blank">' . $cfgfile_to_load . '</a>' )
++             );
+     exit();
+ }
+ error_reporting($old_error_reporting);
+@@ -1074,35 +1054,14 @@
+             } else if (!empty($_SERVER['SERVER_NAME'])) {
+                 $url['host'] = $_SERVER['SERVER_NAME'];
+             } else {
+-                header('Content-Type: text/html; charset=' . $charset);
+                 // Displays the error message
+-                ?>
+-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="<?php echo $available_languages[$lang][2]; ?>" lang="<?php echo $available_languages[$lang][2]; ?>" dir="<?php echo $text_dir; ?>">
+-
+-<head>
+-<title>phpMyAdmin</title>
+-<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset; ?>" />
+-
+-<style type="text/css">
+-<!--
+-body  {font-family: sans-serif; font-size: small; color: #000000; background-color: #F5F5F5}
+-h1    {font-family: sans-serif; font-size: large; font-weight: bold}
+-//-->
+-</style>
+-</head>
+-
+-
+-<body bgcolor="#ffffff">
+-<h1>phpMyAdmin - <?php echo $strError; ?></h1>
+-<p>
+-<?php echo $strPmaUriError; ?><br /><br />
+-</p>
+-</body>
+-
+-</html>
+-                <?php
++                header( 'Location: error.php'
++                        . '?lang='  . urlencode( $available_languages[$lang][2] )
++                        . '&char='  . urlencode( $charset )
++                        . '&dir='   . urlencode( $text_dir )
++                        . '&type='  . urlencode( $strError )
++                        . '&error=' . urlencode( $strPmaUriError )
++                         );
+                 exit();
+             }
+ 
+diff -u -r1.1 -r2.1
+--- phpMyAdmin/error.php	2005-09-07 11:54:25 +0200	1.1
++++ phpMyAdmin/error.php	2005-09-15 20:35:48 +0200	2.1
+@@ -0,0 +1,61 @@
++<?php
++/* $Id: error.php,v 2.1 2005/08/20 13:23:34 lem9 Exp $ */
++// vim: expandtab sw=4 ts=4 sts=4:
++
++/**
++ *
++ * phpMyAdmin fatal error display page
++ * 
++ */
++$lang = isset( $_REQUEST['lang'] ) ? $_REQUEST['lang'] : 'en';
++$dir  = isset( $_REQUEST['dir']  ) ? $_REQUEST['dir']  : 'ltr';
++$char = isset( $_REQUEST['char'] ) ? $_REQUEST['char'] : 'utf-8';
++$type = isset( $_REQUEST['type'] ) ? $_REQUEST['type'] : 'error';
++
++header('Content-Type: text/html; charset=' . $char);
++?>
++<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
++<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="<?php echo $lang; ?>" dir="<?php echo $dir; ?>">
++<head>
++    <title>phpMyAdmin</title>
++    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $char; ?>" />
++    <style type="text/css">
++    <!--
++    html {
++        padding: 0;
++        margin: 0;
++    }
++    body  {
++        font-family: sans-serif;
++        font-size: small;
++        color: #000000;
++        background-color: #F5F5F5;
++        margin: 1em;
++    }
++    h1 {
++        margin: 0;
++        padding: 0.3em;
++        font-size: 1.4em;
++        font-weight: bold;
++        color: #ffffff;
++        background-color: #ff0000;
++    }
++    p {
++        margin: 0;
++        padding: 0.5em;
++        border: 0.1em solid red;
++        background-color: #ffeeee;
++    }
++    //-->
++    </style>
++</head>
++<body>
++<h1>phpMyAdmin - <?php echo $type; ?></h1>
++<p><?php
++if (get_magic_quotes_gpc()) {
++    echo stripslashes($_REQUEST['error']); }
++else {
++    echo $_REQUEST['error'];
++}?></p>
++</body>
++</html>
=== debian/patches/102-bug1240880.patch
==================================================================
--- debian/patches/102-bug1240880.patch	(revision 251)
+++ debian/patches/102-bug1240880.patch	(local)
@@ -0,0 +1,14 @@
+bug #1240880, XSS on the cookie-based login panel
+
+diff -u -r2.25 -r2.26
+--- phpMyAdmin/libraries/auth/cookie.auth.lib.php	2005/03/06 21:10:53	2.25
++++ phpMyAdmin/libraries/auth/cookie.auth.lib.php	2005/07/21 11:53:33	2.26
+@@ -618,7 +618,7 @@
+     } else if (isset($GLOBALS['no_activity']) && $GLOBALS['no_activity']) {
+         $conn_error = sprintf($GLOBALS['strNoActivity'],$GLOBALS['cfg']['LoginCookieValidity']);
+     } else if (PMA_DBI_getError()) {
+-        $conn_error = PMA_DBI_getError();
++        $conn_error = PMA_sanitize(PMA_DBI_getError());
+     } else if (isset($php_errormsg)) {
+         $conn_error = $php_errormsg;
+     } else {
=== debian/patches/102-bug1249239.patch
==================================================================
--- debian/patches/102-bug1249239.patch	(revision 251)
+++ debian/patches/102-bug1249239.patch	(local)
@@ -0,0 +1,19 @@
+bug #1249239, XSS vulnerability on Create page
+
+diff -u -r2.140 -r2.141
+--- phpMyAdmin/libraries/common.lib.php	2005/07/27 00:26:52	2.140
++++ phpMyAdmin/libraries/common.lib.php	2005/08/01 12:38:55	2.141
+@@ -635,11 +635,11 @@
+ 
+         // --- Added to solve bug #641765
+         // Robbat2 - 12 January 2003, 9:46PM
+-        // Revised, Robbat2 - 13 Janurary 2003, 2:59PM
++        // Revised, Robbat2 - 13 January 2003, 2:59PM
+         if (!function_exists('PMA_SQP_isError') || PMA_SQP_isError()) {
+             $formatted_sql = htmlspecialchars($the_query);
+         } else {
+-            $formatted_sql = PMA_formatSql(PMA_SQP_parse($the_query), $the_query);
++            $formatted_sql = PMA_formatSql(PMA_SQP_parse(PMA_sanitize($the_query)), $the_query);
+         }
+         // ---
+         echo "\n" . '<!-- PMA-SQL-ERROR -->' . "\n";
=== debian/patches/102-bug1252124.patch
==================================================================
--- debian/patches/102-bug1252124.patch	(revision 251)
+++ debian/patches/102-bug1252124.patch	(local)
@@ -0,0 +1,25 @@
+bug #1252124, XSS on table creation page
+
+diff -u -r2.15 -r2.16
+--- phpMyAdmin/tbl_create.php	2005/05/26 16:55:15	2.15
++++ phpMyAdmin/tbl_create.php	2005/08/04 19:24:16	2.16
+@@ -7,12 +7,16 @@
+  */
+ require_once('./libraries/grab_globals.lib.php');
+ $js_to_run = 'functions.js';
+-require_once('./header.inc.php');
+-
+-// Check parameters
+ 
+ require_once('./libraries/common.lib.php');
+ 
++if (isset($table)) {
++    $table = PMA_sanitize($table);
++}
++
++require_once('./header.inc.php');
++
++// Check parameters
+ PMA_checkParameters(array('db', 'table'));
+ 
+ /**
=== debian/patches/102-bug1265740.patch
==================================================================
--- debian/patches/102-bug1265740.patch	(revision 251)
+++ debian/patches/102-bug1265740.patch	(local)
@@ -0,0 +1,144 @@
+Protect against possible XSS (bug #1265740), move input sanitizing to
+special file.
+
+diff -u -r2.148 -r2.149
+--- phpMyAdmin/libraries/common.lib.php	2005/08/20 13:23:35	2.148
++++ phpMyAdmin/libraries/common.lib.php	2005/08/22 21:00:52	2.149
+@@ -103,9 +103,7 @@
+             . '&char='  . urlencode( $charset )
+             . '&dir='   . urlencode( $text_dir )
+             . '&type='  . urlencode( $strError )
+-            . '&error=' . urlencode( $strConfigFileError . '<br /><br />'
+-                                    . '<a href="' . $cfgfile_to_load . '" '
+-                                    . 'target="_blank">' . $cfgfile_to_load . '</a>' )
++            . '&error=' . urlencode( strtr($strConfigFileError, array('<br />' => '[br]')) . '[br][br]' . '[a@' . $cfgfile_to_load . '@_blank]' . $cfgfile_to_load . '[/a]' )
+              );
+     exit();
+ }
+@@ -140,30 +138,8 @@
+  */
+ require_once('./libraries/defines.lib.php');
+ 
+-
+-/**
+- * Sanitizes $message, taking into account our special codes
+- * for formatting
+- *
+- * @param   string   the message
+- *
+- * @return  string   the sanitized message
+- *
+- * @access  public
+- */
+-function PMA_sanitize($message)
+-{
+-    $replace_pairs = array(
+-        '<'     => '&lt;',
+-        '>'     => '&gt;',
+-        '[i]'   => '<i>',
+-        '[/i]'  => '</i>',
+-        '[b]'   => '<b>',
+-        '[br]'  => '<br />',
+-        '[/b]'  => '</b>',
+-    );
+-    return strtr($message, $replace_pairs);
+-}
++/* Input sanitizing */
++require_once('./libraries/sanitizing.lib.php');
+ 
+ // XSS
+ if (isset($convcharset)) {
+@@ -1060,7 +1036,7 @@
+                         . '&char='  . urlencode( $charset )
+                         . '&dir='   . urlencode( $text_dir )
+                         . '&type='  . urlencode( $strError )
+-                        . '&error=' . urlencode( $strPmaUriError )
++                        . '&error=' . urlencode( strtr($strPmaUriError, array('<tt>' => '[tt]', '</tt>' => '[/tt]')))
+                          );
+                 exit();
+             }
+diff -u -r2.1 -r2.2
+--- phpMyAdmin/error.php	2005/08/20 13:23:34	2.1
++++ phpMyAdmin/error.php	2005/08/22 21:00:52	2.2
+@@ -7,18 +7,23 @@
+  * phpMyAdmin fatal error display page
+  * 
+  */
+-$lang = isset( $_REQUEST['lang'] ) ? $_REQUEST['lang'] : 'en';
+-$dir  = isset( $_REQUEST['dir']  ) ? $_REQUEST['dir']  : 'ltr';
+-$char = isset( $_REQUEST['char'] ) ? $_REQUEST['char'] : 'utf-8';
+-$type = isset( $_REQUEST['type'] ) ? $_REQUEST['type'] : 'error';
+ 
+-header('Content-Type: text/html; charset=' . $char);
++/* Input sanitizing */
++require_once('./libraries/sanitizing.lib.php');
++
++/* Get variables */
++$lang    = isset( $_REQUEST['lang'] ) ?     htmlspecialchars($_REQUEST['lang'])     : 'en';
++$dir     = isset( $_REQUEST['dir']  ) ?     htmlspecialchars($_REQUEST['dir'])      : 'ltr';
++$charset = isset( $_REQUEST['charset'] ) ?  htmlspecialchars($_REQUEST['charset'])  : 'utf-8';
++$type    = isset( $_REQUEST['type'] ) ?     htmlspecialchars($_REQUEST['type'])     : 'error';
++
++header('Content-Type: text/html; charset=' . $charset);
+ ?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
+ <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="<?php echo $lang; ?>" dir="<?php echo $dir; ?>">
+ <head>
+     <title>phpMyAdmin</title>
+-    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $char; ?>" />
++    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset; ?>" />
+     <style type="text/css">
+     <!--
+     html {
+@@ -52,10 +57,10 @@
+ <body>
+ <h1>phpMyAdmin - <?php echo $type; ?></h1>
+ <p><?php
+-if (get_magic_quotes_gpc()) {
+-    echo stripslashes($_REQUEST['error']); }
+-else {
+-    echo $_REQUEST['error'];
+-}?></p>
++if (get_magic_quotes_gpc())
++    echo PMA_sanitize(stripslashes($_REQUEST['error']));
++else 
++    echo PMA_sanitize($_REQUEST['error']);
++?></p>
+ </body>
+ </html>
+diff -u -r1.1 -r2.1
+--- phpMyAdmin/libraries/sanitizing.lib.php	2005-09-07 11:54:25 +0200	1.1
++++ phpMyAdmin/libraries/sanitizing.lib.php	2005-09-15 20:00:35 +0200	2.1
+@@ -0,0 +1,32 @@
++<?php
++/* $Id: sanitizing.lib.php,v 2.1 2005/08/22 21:00:52 nijel Exp $ */
++// vim: expandtab sw=4 ts=4 sts=4:
++
++/**
++ * Sanitizes $message, taking into account our special codes
++ * for formatting
++ *
++ * @param   string   the message
++ *
++ * @return  string   the sanitized message
++ *
++ * @access  public
++ */
++function PMA_sanitize($message)
++{
++    $replace_pairs = array(
++        '<'     => '&lt;',
++        '>'     => '&gt;',
++        '[i]'   => '<i>',
++        '[/i]'  => '</i>',
++        '[b]'   => '<b>',
++        '[/b]'  => '</b>',
++        '[tt]'   => '<tt>',
++        '[/tt]'  => '</tt>',
++        '[br]'  => '<br />',
++        '[/a]'  => '</a>',
++    );
++    return preg_replace('/\[a@([^"@]*)@([^]"]*)\]/', '<a href="\1" target="\2">', strtr($message, $replace_pairs));
++}
++
++?>
=== debian/patches/102-bug1283552.patch
==================================================================
--- debian/patches/102-bug1283552.patch	(revision 251)
+++ debian/patches/102-bug1283552.patch	(local)
@@ -0,0 +1,34 @@
+XSS on username (bug #1283552)
+
+diff -u -r2.26 -r2.27
+--- phpMyAdmin/libraries/auth/cookie.auth.lib.php	2005/07/21 11:53:33	2.26
++++ phpMyAdmin/libraries/auth/cookie.auth.lib.php	2005/09/07 07:20:15	2.27
+@@ -255,14 +255,14 @@
+     <tr>
+         <td align="right" bgcolor="<?php echo $GLOBALS['cfg']['BgcolorOne']; ?>"><b><?php echo $GLOBALS['strLogServer']; ?>:&nbsp;</b></td>
+         <td align="<?php echo $cell_align; ?>" bgcolor="<?php echo $GLOBALS['cfg']['BgcolorOne']; ?>">
+-            <input type="text" name="pma_servername" value="<?php echo (isset($default_server) ? $default_server : ''); ?>" size="24" class="textfield" onfocus="this.select()" />
++            <input type="text" name="pma_servername" value="<?php echo (isset($default_server) ? htmlspecialchars($default_server) : ''); ?>" size="24" class="textfield" onfocus="this.select()" />
+         </td>
+     </tr>
+ <?php } ?>
+     <tr>
+         <td align="right" bgcolor="<?php echo $GLOBALS['cfg']['BgcolorOne']; ?>"><b><?php echo $GLOBALS['strLogUsername']; ?>&nbsp;</b></td>
+         <td align="<?php echo $cell_align; ?>" bgcolor="<?php echo $GLOBALS['cfg']['BgcolorOne']; ?>">
+-            <input type="text" name="pma_username" value="<?php echo (isset($default_user) ? $default_user : ''); ?>" size="24" class="textfield" onfocus="this.select()" />
++            <input type="text" name="pma_username" value="<?php echo (isset($default_user) ? htmlspecialchars($default_user) : ''); ?>" size="24" class="textfield" onfocus="this.select()" />
+         </td>
+     </tr>
+     <tr>
+diff -u -r2.73 -r2.73.2.1
+--- phpMyAdmin/main.php	2005/08/23 23:08:21	2.73
++++ phpMyAdmin/main.php	2005/09/07 07:20:00	2.73.2.1
+@@ -92,7 +92,7 @@
+ 
+     $full_string     = str_replace('%pma_s1%', PMA_MYSQL_STR_VERSION, $strMySQLServerProcess);
+     $full_string     = str_replace('%pma_s2%', $server_info, $full_string);
+-    $full_string     = str_replace('%pma_s3%', $mysql_cur_user_and_host, $full_string);
++    $full_string     = str_replace('%pma_s3%', htmlspecialchars($mysql_cur_user_and_host), $full_string);
+ 
+     echo '<p><b>' . $full_string . '</b></p>' . "\n";
+ } // end if
=== debian/patches/102-bug_XSS_on_header.inc.php.patch
==================================================================
--- debian/patches/102-bug_XSS_on_header.inc.php.patch	(revision 251)
+++ debian/patches/102-bug_XSS_on_header.inc.php.patch	(local)
@@ -0,0 +1,34 @@
+XSS on header.inc.php
+
+diff -u -r2.31 -r2.31.2.1
+--- phpMyAdmin/header.inc.php	2005/08/12 11:07:41	2.31
++++ phpMyAdmin/header.inc.php	2005/09/05 22:09:08	2.31.2.1
+@@ -41,16 +41,16 @@
+      */
+     $title     = '';
+     if ($cfg['ShowHttpHostTitle']) {
+-        $title .= (empty($GLOBALS['cfg']['SetHttpHostTitle']) && isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $GLOBALS['cfg']['SetHttpHostTitle']) . ' >> ';
++        $title .= (empty($GLOBALS['cfg']['SetHttpHostTitle']) && isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $GLOBALS['cfg']['SetHttpHostTitle']) . ' / ';
+     }
+     if (!empty($GLOBALS['cfg']['Server']) && isset($GLOBALS['cfg']['Server']['host'])) {
+         $title.=str_replace('\'', '\\\'', $GLOBALS['cfg']['Server']['host']);
+     }
+     if (isset($GLOBALS['db'])) {
+-        $title .= ' >> ' . str_replace('\'', '\\\'', $GLOBALS['db']);
++        $title .= ' / ' . str_replace('\'', '\\\'', $GLOBALS['db']);
+     }
+     if (isset($GLOBALS['table'])) {
+-        $title .= (empty($title) ? '' : ' ') . ' >> ' . str_replace('\'', '\\\'', $GLOBALS['table']);
++        $title .= (empty($title) ? '' : ' ') . ' / ' . str_replace('\'', '\\\'', $GLOBALS['table']);
+     }
+     $title .= ' | phpMyAdmin ' . PMA_VERSION;
+     ?>
+@@ -59,7 +59,7 @@
+     // Updates the title of the frameset if possible (ns4 does not allow this)
+     if (typeof(parent.document) != 'undefined' && typeof(parent.document) != 'unknown'
+         && typeof(parent.document.title) == 'string') {
+-        parent.document.title = '<?php echo $title; ?>';
++        parent.document.title = '<?php echo PMA_sanitize($title); ?>';
+     }
+ 
+     document.write('<style type="text/css">');
=== debian/patches/103-bug_CVE-2005-3300.patch
==================================================================
--- debian/patches/103-bug_CVE-2005-3300.patch	(revision 251)
+++ debian/patches/103-bug_CVE-2005-3300.patch	(local)
@@ -0,0 +1,36 @@
+The register_globals emulation layer in grab_globals.php for phpMyAdmin before
+2.6.4-pl3 does not perform safety checks on values in the _FILES array for
+uploaded files, which allows remote attackers to include arbitrary files by
+using direct requests to library scripts that do not use grab_globals.php,
+then modifying certain configuration values for the theme.
+
+diff -u -r2.151 -r2.151.2.1
+--- phpMyAdmin/libraries/common.lib.php	2005/08/23 23:08:21	2.151
++++ phpMyAdmin/libraries/common.lib.php	2005/10/21 02:40:23	2.151.2.1
+@@ -47,6 +47,10 @@
+  * - other functions, respecting dependencies
+  */
+ 
++// grab_globals.lib.php should really go before common.lib.php
++// TODO: remove direct calling from elsewhere
++require_once('./libraries/grab_globals.lib.php');
++
+ /**
+  * Minimum inclusion? (i.e. for the stylesheet builder)
+  */
+diff -u -r2.12.2.1 -r2.12.2.2
+--- phpMyAdmin/libraries/grab_globals.lib.php	2005/10/11 13:28:43	2.12.2.1
++++ phpMyAdmin/libraries/grab_globals.lib.php	2005/10/21 02:40:39	2.12.2.2
+@@ -12,6 +11,12 @@
+  * loic1 - 2001/25/11: use the new globals arrays defined with php 4.1+
+  */
+ 
++// protect against older PHP versions' bug about GLOBALS overwrite
++// (no need to translate this one :) )
++if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
++    die("GLOBALS overwrite attempt");
++}
++
+ function PMA_gpc_extract($array, &$target, $sanitize = TRUE) {
+     if (!is_array($array)) {
+         return FALSE;
=== debian/patches/103-bug_CVE-2005-3301.patch
==================================================================
--- debian/patches/103-bug_CVE-2005-3301.patch	(revision 251)
+++ debian/patches/103-bug_CVE-2005-3301.patch	(local)
@@ -0,0 +1,53 @@
+Multiple cross-site scripting (XSS) vulnerabilities in phpMyAdmin before
+2.6.4-pl3 allow remote attackers to inject arbitrary web script or HTML via
+certain arguments to (1) left.php, (2) queryframe.php, or (3)
+server_databases.php.
+
+diff -u -r2.45 -r2.45.2.1
+--- phpMyAdmin/left.php	2005/07/10 18:42:00	2.45
++++ phpMyAdmin/left.php	2005/10/21 01:24:00	2.45.2.1
+@@ -39,6 +39,8 @@
+ //PMA_checkParameters(array('hash'));
+ if (!isset($hash)) {
+     $hash='';
++} else {
++    $hash = PMA_sanitize($hash);
+ }
+ 
+ require_once('./libraries/bookmark.lib.php');
+diff -u -r2.30 -r2.30.2.1
+--- phpMyAdmin/queryframe.php	2005/08/11 15:07:57	2.30
++++ phpMyAdmin/queryframe.php	2005/10/21 01:27:32	2.30.2.1
+@@ -24,6 +24,10 @@
+         PMA_outBufferPre($ob_mode);
+     }
+ }
++// security fix:
++if (isset($hash)) {
++   $hash = PMA_sanitize($hash);
++}
+ 
+ // garvin: For re-usability, moved http-headers
+ // to a seperate file. It can now be included by header.inc.php,
+diff -u -r2.19 -r2.19.2.1
+--- phpMyAdmin/server_databases.php	2005/08/02 13:02:17	2.19
++++ phpMyAdmin/server_databases.php	2005/10/21 01:33:58	2.19.2.1
+@@ -145,13 +145,18 @@
+ // avoids 'undefined index' errors
+ if (empty($sort_by)) {
+     $sort_by = 'db_name';
++} else {
++    $sort_by = PMA_sanitize($sort_by);
+ }
++
+ if (empty($sort_order)) {
+     if ($sort_by == 'db_name') {
+         $sort_order = 'asc';
+     } else {
+         $sort_order = 'desc';
+     }
++} else {
++    $sort_order = PMA_sanitize($sort_order);
+ }
+ 
+ // sorts the array

Attachment: pgp2U9nTKFhw0.pgp
Description: PGP signature



Reply via email to