[Full-Disclosure] iDEFENSE Security Advisory 01.17.05: AWStats Remote Command Execution Vulnerability

idlabs-advisories_at_idefense.com
Date: 01/18/05

  • Next message: Micheal Espinola Jr: "[Full-Disclosure] Steam looses its power"
    Date: Mon, 17 Jan 2005 18:13:51 -0500
    To: <idlabs-advisories@idefense.com>
    
    

    AWStats Remote Command Execution Vulnerability

    iDEFENSE Security Advisory 01.17.05
    www.idefense.com/application/poi/display?id=185&type=vulnerabilities
    January 17, 2005

    I. BACKGROUND

    AWStats is a free tool that generates advanced web, ftp or mail server
    statistics, graphically. More information about AWStats is available
    from:

        http://awstats.sourceforge.net

    II. DESCRIPTION

    Remote exploitation of an input validation vulnerability in AWStats
    allows attackers to execute arbitrary commands under the privileges of
    the web server.

    The problem specifically exists when the application is running as a
    CGI script on a web server. The "configdir" parameter contains
    unfiltered user-supplied data that is utilized in a call to the Perl
    routine open() as can be seen here on line 1082 of awstats.pl:

        if (open(CONFIG,"$searchdir$PROG.$SiteConfig.conf"))

    The "searchdir" variables hold the value of the parameter provided by
    the attacker from "configdir." An attacker can cause arbitrary commands
    to be executed by prefixing them with the "|" character.

    III. ANALYSIS

    Successful exploitation allows remote attackers to execute arbitrary
    commands under the privileges of the web server. This can lead to
    further compromise as it provides remote attackers with local access.

    IV. DETECTION

    iDEFENSE has confirmed that AWStats version 6.1 is vulnerable.
    It is suspected that earlier versions are also vulnerable.

    V. WORKAROUND

    Add a filter around the "configdir" parameter by replacing the following
    line:

        if ($QueryString =~ /configdir=([^&]+)/i)
        {
            $DirConfig=&DecodeEncodedString("$1");
        }

    With:

        if ($QueryString =~ /configdir=([^&]+)/i)
        {
            $DirConfig=&DecodeEncodedString("$1");
            $DirConfig=~tr/a-z0-9_\-\/\./a-z0-9_\-\/\./cd;
        }

    VI. VENDOR RESPONSE

    This vulnerability is addressed in AWStats 6.3, available for download
    at:

       http://awstats.sourceforge.net/#DOWNLOAD

    VII. CVE INFORMATION

    A Mitre Corp. Common Vulnerabilities and Exposures (CVE) number has not
    been assigned yet.

    VIII. DISCLOSURE TIMELINE

    10/21/2004 Initial vendor notification
    01/02/2005 Initial vendor response
    01/17/2005 Public disclosure

    IX. CREDIT

    The discoverer of this vulnerability wishes to remain anonymous.

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

    X. LEGAL NOTICES

    Copyright (c) 2005 iDEFENSE, 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.

    _______________________________________________
    Full-Disclosure - We believe in it.
    Charter: http://lists.netsys.com/full-disclosure-charter.html


  • Next message: Micheal Espinola Jr: "[Full-Disclosure] Steam looses its power"

    Relevant Pages