[EXPL] phpSlash Account Hijacking (Exploit)

From: SecuriTeam (support_at_securiteam.com)
Date: 07/20/05

  • Next message: SecuriTeam: "[NEWS] Dedicated Mobile Services Carry Out Anonymous Web Attacks"
    To: list@securiteam.com
    Date: 20 Jul 2005 14:30:37 +0200
    
    

    The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
    - - promotion

    The SecuriTeam alerts list - Free, Accurate, Independent.

    Get your security news from a reliable source.
    http://www.securiteam.com/mailinglist.html

    - - - - - - - - -

      phpSlash Account Hijacking (Exploit)
    ------------------------------------------------------------------------

    SUMMARY

    " <http://www.php-slash.org> phpSlash is a powerful CMS written in PHP
    that provides easy and flexible means to publish community-based websites.
    It currently boasts full HTML templates, an OO design, the ability to
    operate in a hosted environment."

    An input validation flaw discovered in phpSlash can be used to gain
    elevated privileges by hijacking the administrator's account.

    DETAILS

    Vulnerable Systems:
     * phpSlash versions 0.7.1, 0.7.2, and 0.8.X

    There is an input validation flaw in Author.class::saveProfile which can
    lead to gain root privileges by hijacking user account. In function
    saveProfile, author_id value is retrieved from the wrong source : user
    info in $ary is not compared to the author_id associated to the running
    session ...

    Vulnerable Code:
    <?
       /* Code extracted from Author.class */
       function saveProfile($ary) {
          global $HTTP_COOKIE_VARS;

          // ( ... snip ... )

    /**********************************
    * This sql query is using data from an untrusted source ( $ary ) *
    **********************************/

          $this->db->query("SELECT author_id
                            FROM psl_author
                            WHERE author_id = '".$ary['author_id']."'");

    /**********************************
    * This condition is not relevant in that context, it is the current *
    * author_id (from $this->auth) that should eventually be compared *
    **********************************/

          if ($this->db->next_record()) {
             if ($ary['password'] == "") {
                $q = "UPDATE psl_author
                          SET author_name = '$ary[author_name]',
                              author_realname = '$ary[author_realname]',
                              url = '$ary[url]',
                              email = '$ary[email]',
                              quote = '$ary[quote]',
                              author_options = '$serial_opts'
                        WHERE author_id = '$ary[author_id]'";
                        // use $this->auth->auth['uid'] instead of untrusted
    $ary
             } else {
                $q = "UPDATE psl_author
                       SET author_name = '$ary[author_name]',
                           author_realname = '$ary[author_realname]',
                           url = '$ary[url]',
                           email = '$ary[email]',
                           quote = '$ary[quote]',
                          password = MD5('$ary[author_name]:$ary[password]'),
                           author_options = '$serial_opts'
                     WHERE author_id = '$ary[author_id]'";

                 /******************************/
                 // use $this->auth->auth['uid'] and
    $this->auth->auth['uname']
                 // instead of untrusted $ary
                 /******************************/
             }
          }
          // ( ... snip ... )
       }
    ?>

    A malicious registered user can forge a http request that will overwrite
    preferences of other author(s) (including author real name, email address,
    URL, and password). A malicious developer can easily code an automated
    attack with the help of the self-registration capacity offered by phpSlash
    and build CMS-based zombie network. In fact any registered user with
    AuthorSaveProfile perm can overwrite other account's preferences.

    Vulnerable site's recognition may vary depending on configuration and
    version of the package, the ability to match them will depend principally
    on version identification, this should be subject for a second bulletin
    uncovering the more generic HTML fingerprinting problem found in the
    common footer templates.

    The point to focus on to identify if your version is vulnerable or not are
    the default perms assigned to a self-registered user (AuthorProfileSave,
    id 50).

    Note:
    Some upgrades (7 to 8) seem not to have this perm set, and therefore are
    not vulnerable. Some versions with configuration value 'authmode' set to
    'log' are less vulnerable to manual or automated attacks.

    Fix:
    Download the latest package (0.8.1) from the phpSlash project page :
     <http://sourceforge.net/project/showfiles.php?group_id=10566>
    http://sourceforge.net/project/showfiles.php?group_id=10566

    ADDITIONAL INFORMATION

    The information has been provided by <mailto:tobozo@madchat.org> tobozo.

    ========================================

    This bulletin is sent to members of the SecuriTeam mailing list.
    To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
    In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com

    ====================
    ====================

    DISCLAIMER:
    The information in this bulletin is provided "AS IS" without warranty of any kind.
    In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.


  • Next message: SecuriTeam: "[NEWS] Dedicated Mobile Services Carry Out Anonymous Web Attacks"

    Relevant Pages

    • [TOOL] Binhex - Convert Files Generated by Xbin or Macget Into BinHex Format
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... This utility converts Mac Bin Hex files to BinHex format ... The information in this bulletin is provided "AS IS" without warranty of any kind. ...
      (Securiteam)
    • [NT] Microsoft Windows GDI+ Gradient Fill Heap Overflow Vulnerability
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Microsoft Windows GDI+ Gradient Fill Heap Overflow Vulnerability ... consult their bulletin at the ...
      (Securiteam)
    • [EXPL] Invision Power Board Command Execution (Exploit)
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Invision Power Board Command Execution ... sub invvy { ... This bulletin is sent to members of the SecuriTeam mailing list. ...
      (Securiteam)
    • [NT] Microsoft Outlook mailto Command Line Switch Injection
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Microsoft Outlook mailto Command Line Switch Injection ... Exploitation of this vulnerability may allow an attacker to access ... Microsoft has addressed this vulnerability with Security Bulletin ...
      (Securiteam)
    • [NT] Microsoft PowerPoint Viewer 2003 Out of Bounds Array Index Vulnerability
      ... The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com ... Microsoft PowerPoint Viewer 2003 Out of Bounds Array Index Vulnerability ... handling certain records in a PowerPoint presentation file. ... consult their bulletin at the ...
      (Securiteam)