[UNIX] XOOPS RC3 WebChat Module SQL Injection

From: support@securiteam.com
Date: 11/14/02

  • Next message: support@securiteam.com: "[NT] Perception LiteServe HTTP CGI Disclosure Vulnerability"

    From: support@securiteam.com
    To: list@securiteam.com
    Date: 14 Nov 2002 20:59:15 +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

    Beyond Security would like to welcome Tiscali World Online
    to our service provider team.
    For more info on their service offering IP-Secure,
    please visit http://www.worldonline.co.za/services/work_ip.asp
    - - - - - - - - -

      XOOPS RC3 WebChat Module SQL Injection
    ------------------------------------------------------------------------

    SUMMARY

    XOOPS is a dynamic OO (Object Oriented) based open source portal script
    written in PHP. XOOPS is the ideal tool for developing small to large
    dynamic community websites, intra company portals, corporate portals,
    weblogs and much more. A vulnerability in the product allows remote
    attackers to cause the product to insert malicious HTML or JavaScript into
    existing pages.

    DETAILS

    Vulnerable systems:
     * XOOPS RC3 WebChat 1-5

    Lines 291-299 from modules/WebChat/index.php :

        if(isset($roomid)) {
          if($xoopsUser) {
            $wcusername = $xoopsUser->getVar("uname", "E");
            $uid = $xoopsUser->getVar("uid", "E");
          }
          join_room($roomid,$pass,$wcusername,$uid); /* <- calling joinroom
    function with param $roomid */
        } else {
          disp_index($errmsg);
        }

    Lines 204-208 :
        function join_room($roomid,$pass,$username,$uid) {
          global $xoopsDB, $xoopsUser, $xoopsConfig, $ModName, $user,
    $sitename, $pnconfig, $language, $usertime;
          unset($errmsg);
          $sql = "SELECT rid, name, typ, pass, descript FROM
    ".$xoopsDB->prefix("chatroom")." WHERE rid = $roomid";
          $row = mysql_fetch_array(mysql_query($sql));
            [...]

    Problem:
    The value of $roomid id is included whitout verification.

    Patch:
    Add the following line in a the beginning of index.php or download PATCH
    from phpsecure.org:
        $roomid = addslashes($roomid);

    ADDITIONAL INFORMATION

    The information has been provided by <mailto:vALDEUx@aol.com> vALDEUx.

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

    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.



    Relevant Pages