From 037af6890fe6fdb84a08d3c86083e847c90ec0ad Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Tue, 22 Oct 2013 08:17:26 -0400 Subject: [PATCH] Fix vulnerability in handling _session argument of utils/save-prefs (#1489382) --- INSTALL | 71 ++++++++++++++++++++--------------- 1 files changed, 40 insertions(+), 31 deletions(-) diff --git a/INSTALL b/INSTALL index 2664e7f..51dbfd8 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ INTRODUCTION ============ -This file describes the basic steps to install RoundCube Webmail on your +This file describes the basic steps to install Roundcube Webmail on your web server. For additional information, please also consult the project's wiki page at http://trac.roundcube.net/wiki @@ -9,16 +9,20 @@ REQUIREMENTS ============ -* The Apache or Lighttpd Webserver +* The Apache, Lighttpd, Cherokee or Hiawatha web server * .htaccess support allowing overrides for DirectoryIndex -* PHP Version 5.2 or greater including +* PHP Version 5.2.1 or greater including - PCRE, DOM, JSON, XML, Session, Sockets (required) - - libiconv (recommended) - - mbstring, fileinfo, mcrypt (optional) + - PHP Data Objects (PDO) with driver for either MySQL, PostgreSQL or SQLite (required) + Note: MySQL database driver requires PHP 5.3 or newer. + - Libiconv, Zip (recommended) + - Fileinfo, Mcrypt, mbstring (optional) * PEAR packages distributed with Roundcube or external: - - MDB2 2.5.0 or newer - - Mail_Mime 1.7.0 or newer - - Net_SMTP 1.4.2 or newer + - Mail_Mime 1.8.1 or newer + - Mail_mimeDecode 1.5.5 or newer + - Net_SMTP (latest from https://github.com/pear/Net_SMTP/) + - Net_IDNA2 0.1.1 or newer + - Auth_SASL 1.0.6 or newer * php.ini options (see .htaccess file): - error_reporting E_ALL & ~E_NOTICE (or lower) - memory_limit > 16MB (increase as suitable to support large attachments) @@ -27,9 +31,11 @@ - zend.ze1_compatibility_mode disabled - suhosin.session.encrypt disabled - mbstring.func_overload disabled + - magic_quotes_runtime disabled + - magic_quotes_sybase disabled * PHP compiled with OpenSSL to connect to IMAPS and to use the spell checker -* A MySQL (4.0.8 or newer), PostgreSQL, MSSQL database engine - or the SQLite extension for PHP +* A MySQL (4.0.8 or newer), PostgreSQL, MS SQL Server (2005 or newer) database engine + or SQLite support in PHP * One of the above databases with permission to create tables * An SMTP server (recommended) or PHP configured for mail delivery @@ -42,7 +48,7 @@ are writable by the webserver - /temp - /logs -3. Create a new database and a database user for RoundCube (see DATABASE SETUP) +3. Create a new database and a database user for Roundcube (see DATABASE SETUP) 4. Point your browser to http://url-to-roundcube/installer/ 5. Follow the instructions of the install script (or see MANUAL CONFIGURATION) 6. After creating and testing the configuration, remove the installer directory @@ -52,7 +58,7 @@ CONFIGURATION HINTS =================== -RoundCube writes internal errors to the 'errors' log file located in the logs +Roundcube writes internal errors to the 'errors' log file located in the logs directory which can be configured in config/main.inc.php. If you want ordinary PHP errors to be logged there as well, enable the 'php_value error_log' line in the .htaccess file and set the path to the log file accordingly. @@ -66,7 +72,7 @@ DATABASE SETUP ============== -Note: Database for RoundCube must use UTF-8 character set. +Note: Database for Roundcube must use UTF-8 character set. * MySQL ------- @@ -89,24 +95,15 @@ * SQLite -------- -You need sqlite 2 (preferably 2.8) to setup the sqlite db -(sqlite 3.x also doesn't work at the moment). Here is -an example how you can setup the sqlite.db for roundcube: - -# sqlite -init SQL/sqlite.initial.sql sqlite.db -Loading resources from SQL/sqlite.initial.sql -SQLite version 2.8.16 -Enter ".help" for instructions -sqlite> .exit -# chmod o+rw sqlite.db - -Make sure your configuration points to the sqlite.db file and that the +Versions of sqlite database engine older than 3 aren't supported. +Database file and structure is created automatically by Roundcube. +Make sure your configuration points to some file location and that the webserver can write to the file and the directory containing the file. * PostgreSQL ------------ -To use RoundCube with PostgreSQL support you have to follow these +To use Roundcube with PostgreSQL support you have to follow these simple steps, which have to be done as the postgres system user (or which ever is the database superuser): @@ -121,6 +118,20 @@ All this has been tested with PostgreSQL 8.x and 7.4.x. Older versions don't have a -O option for the createdb, so if you are using that version you'll have to change ownership of the DB later. + + +* Microsoft SQL Server +---------------------- +Language/locale of the database must be set to us_english (1033). More info +on this at http://trac.roundcube.net/ticket/1488918. + + +Database cleaning +----------------- +To keep your database slick and clean we recommend to periodically execute +bin/cleandb.sh which finally removes all records that are marked as deleted. +Best solution is to install a cronjob running this script daily. + MANUAL CONFIGURATION @@ -139,7 +150,7 @@ UPGRADING ========= -If you already have a previous version of RoundCube installed, +If you already have a previous version of Roundcube installed, please refer to the instructions in UPGRADING guide. @@ -147,9 +158,9 @@ ========== There are two forms of optimisation here, compression and caching, both aimed -at increasing an end user's experience using RoundCube Webmail. Compression +at increasing an end user's experience using Roundcube Webmail. Compression allows the static web pages to be delivered with less bandwidth. The index.php -of RoundCube Webmail already enables compression on its output. The settings +of Roundcube Webmail already enables compression on its output. The settings below allow compression to occur for all static files. Caching sets HTTP response headers that enable a user's web client to understand what is static and how to cache it. @@ -218,5 +229,3 @@ compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml", "image/gif", "image/png") } - - -- Gitblit v1.9.1