[VIM] clearBudget v0.9.8 Remote File Include Vulnerability

George A. Theall theall at tenable.com
Wed Aug 11 09:43:04 CDT 2010


Looks like the same sort of problem with Exploit DB 14614 / Bugtraq  
42351 -- the supposedly affected file defines a class, and there's no  
way for an attacker to control the '$actionPath' variable:

   <?php
   /**
   * File holding the controller class
   *
   * @author       Fabrice Douteaud <admin at clearbudget.net>
   * @package      framework
   * @access       public
   */

   / 
***********************************************************************

     Copyright (C) 2008  Fabrice Douteaud (admin at clearbudget.net)

       This file is part of ClearBudget.

       ClearBudget is free software: you can redistribute it and/or  
modify
       it under the terms of the GNU General Public License as  
published by
       the Free Software Foundation, either version 3 of the License, or
       (at your option) any later version.


       ClearBudget is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.

       You should have received a copy of the GNU General Public License
       along with ClearBudget.  If not, see <http://www.gnu.org/licenses/ 
 >.

    
************************************************************************/

   /**
   * Class managing the flow of event from a given request. It  
controls the actions
   * that are requested and build the output message.
   *
   * this is the applicaton controller.
   *
   * @author       Fabrice Douteaud <admin at clearbudget.net>
   * @package      framework
   * @access       public
   */
   class class_controller {
   ...
     public function doAction() {
   ...
         $actionPath = 'actions'.DIRECTORY_SEPARATOR.$context- 
 >action.'.php';
         // if file does not exist, we simply continue
         if(file_exists($actionPath)) {
           // includes the files (i.e.: execute it)
           include($actionPath);
   ...
       }
   ...
     public function includeAction($action) {
   ...
       $actionPath = 'actions'.DIRECTORY_SEPARATOR.$action.'.php';
       // if file does not exist, we simply continue
       if(file_exists($actionPath)) {
         // includes the files (i.e.: execute it)
         include($actionPath);
   ...
       }
   ...
     }
   ?>


George
-- 
theall at tenablesecurity.com





More information about the VIM mailing list