Public Vulnerability Reports

Tikiwiki tiki-user_preferences Command Injection Vulnerability

11.10.05

BACKGROUND

Tikiwiki Community Portal is a full featured, freely available,
Wiki/CMS/Groupware system written in PHP. More information is available
at:

    http://tikiwiki.org/

DESCRIPTION

Remote exploitation of an input validation vulnerability in Tikiwiki
could allow attackers to gain access to arbitrary files on the
vulnerable system and execute arbitrary code under the privileges of the
underlying web-server.

The problem specifically exists in the following snippet of code from
tiki-user_preferences.php:

    if (isset($_REQUEST["prefs"])) {
    ...
        if ($change_language == 'y') {
            if (isset($_REQUEST["language"])) {
                $tikilib->set_user_preference($userwatch, 'language',
                    $_REQUEST["language"]);
   
                $smarty->assign('language', $_REQUEST["language"]);
                include ('lang/' . $_REQUEST["language"] .
                    '/language.php');
            }
        }

No sanity checking is done on the 'language' parameter prior to
utilizing it in a call to the PHP function include(). By specifying a
path with directory traversal modifiers, an attacker can request an
arbitrary file to load and render on the screen.

ANALYSIS

Exploitation could allow authenticated remote attackers to access
arbitrary files on the vulnerable system with the privileges of the
underlying web-server. If external database access is allowed,
exploitation can result in a full database compromise since database
credentials are easily exposed through this vulnerability.

Exploitation can result in arbitrary command execution with the
privileges of the underlying targeted web server. This is possible
because attackers can generate request URLs with arbitrary script
directives that are recorded in the web server log files. Attackers can
then utilize the path to the poisoned log file in the file inclusion,
resulting in the directives being parsed and executed.

DETECTION

iDEFENSE has confirmed the existence of this issue in Tikiwiki versions
1.8.4 and 1.8.5. It is suspected that earlier versions are vulnerable as
well.

WORKAROUND

Restrict anonymous access to Tikiwiki. If remote database connectivity
is not required, configure the underlying database server to bind to
localhost only or firewall the listening port to accept trusted hosts
only. Restrict read access of log files from the web server user.

VENDOR RESPONSE

This vulnerability has been addressed in Tikiwiki 1.9.1 which is
available for download at:

  http://tikiwiki.org/tiki-index.php?page=Download

CVE INFORMATION

The Common Vulnerabilities and Exposures (CVE) project has assigned the
name CAN-2005-1925 to this issue. This is a candidate for inclusion in
the CVE list (http://cve.mitre.org), which standardizes names for
security problems.

DISCLOSURE TIMELINE

06/07/2005   Initial vendor notification
08/21/2005   Initial vendor response
11/10/2005   Public disclosure

CREDIT

This vulnerability was discovered by both Maciej Piotr Falkiewicz
(fingerout[at]gmail[dot]com) and an anonymous contributor.

Get paid for vulnerability research
http://www.idefense.com/poi/teams/vcp.jsp

Free tools, research and upcoming events
http://labs.idefense.com

LEGAL NOTICES

Copyright © 2005 Verisign, Inc.

Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without the express
written consent of iDEFENSE. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically, please
email customerservice@idefense.com for permission.

Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.