VYPR
Critical severity9.1NVD Advisory· Published May 8, 2017· Updated May 13, 2026

CVE-2017-8827

CVE-2017-8827

Description

forgotpassword.php in GeniXCMS 1.0.2 lacks a rate limit, which might allow remote attackers to cause a denial of service (login inability) or possibly conduct Arbitrary User Password Reset attacks via a series of requests.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
genix/cmsPackagist
< 1.1.21.1.2

Affected products

1

Patches

1
f7b4a8278cdc

Version 1.1.2 #75 #81 add cache

https://github.com/semplon/GeniXCMSPuguh WijayantoSep 14, 2017via ghsa
118 files changed · +564 143
  • assets/css/install.css+1 1 modified
    @@ -4,7 +4,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 0.0.1 build date 20150221
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • composer.json+1 1 modified
    @@ -2,7 +2,7 @@
         "name": "genix/cms",
    
         "type": "project",
    
         "description": "Simple and Free Opensource CMS and Framework",
    
    -    "version": "1.1.1",
    
    +    "version": "1.1.2",
    
         "homepage": "http://genix.id",
    
         "keywords": ["genixcms", "genix", "cms", "metalgenix", "blog", "blog software", "bootstrap"],
    
         "license": "MIT",
    
    
  • forgotpassword.php+11 3 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20140928
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -35,6 +35,11 @@
             // VALIDATE ALL
             $alertDanger[] = TOKEN_NOT_EXIST;
         }
    +
    +    // check last request 
    +    if (!User::lastRequestPassword()) {
    +        $alertDanger[] = 'You had reached request password Limit!';
    +    }
         if (Xaptcha::isEnable()) {
             if (!isset($_POST['g-recaptcha-response']) || $_POST['g-recaptcha-response'] == '') {
                 $alertDanger[] = 'Please insert the Captcha';
    @@ -110,11 +115,14 @@
     
             Token::remove($token);
         } else {
    -        $data['alertDanger'][] = $alertDanger;
    +        $data['alertDanger'] = $alertDanger;
         }
     }
    -Theme::theme('header');
    +
    +Theme::theme('header', $data);
    +echo "<div class='container'>";
     echo System::alert($data);
    +echo "</div>";
     if (!User::isLoggedin()) {
         ?>
     <div class="container">
    
  • gxadmin/forgotpassword.php+2 2 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20140928
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -111,7 +111,7 @@
     
             Token::remove($token);
         } else {
    -        $data['alertDanger'][] = $alertDanger;
    +        $data['alertDanger'] = $alertDanger;
         }
     }
     Theme::admin('headermini', $data);
    
  • gxadmin/inc/cache.php+110 0 added
    @@ -0,0 +1,110 @@
    +<?php
    +
    +defined('GX_LIB') or die('Direct Access Not Allowed!');
    +/**
    + * GeniXCMS - Content Management System.
    + *
    + * PHP Based Content Management System and Framework
    + *
    + * @since 1.1.2 build date 20170912
    + *
    + * @version 1.1.2
    + *
    + * @link https://github.com/semplon/GeniXCMS
    + * @link http://genix.id
    + *
    + * @author Puguh Wijayanto <psw@metalgenix.com>
    + * @copyright 2014-2017 Puguh Wijayanto
    + * @license http://www.opensource.org/licenses/mit-license.php MIT
    + */
    +
    +?>
    +
    +<form action="index.php?page=cache" method="post">
    +
    +    <div class="col-md-12">
    +        <?=Hooks::run('admin_page_notif_action', $data);?>
    +        <?=Hooks::run('admin_page_top_action', $data);?>
    +    </div>
    +    <section class="content-header">
    +        <h1 class="clearfix">
    +            <div class="pull-left">
    +                <i class="fa fa-archive"></i> Cache Settings
    +            </div>
    +            <div class="pull-right">
    +                <button type="submit" name="change" class="btn btn-success btn-sm" value="Change">
    +                    <span class="glyphicon glyphicon-ok"></span>
    +                    <span class="hidden-xs hidden-sm"><?=CHANGE;?></span>
    +                </button>
    +                <button type="reset" class="btn btn-danger btn-sm" value="Cancel">
    +                    <span class="glyphicon glyphicon-remove"></span>
    +                    <span class="hidden-xs hidden-sm"><?=CANCEL;?></span>
    +                </button>
    +            </div>
    +        </h1>
    +    </section>
    +
    +    <section class="content">
    +        <!-- Default box -->
    +        <div class="box box-info">
    +            <div class="box-header with-border">
    +                <h3 class="box-title">
    +                    Settings Cache
    +                </h3>
    +
    +                <div class="box-tools pull-right">
    +
    +                </div>
    +            </div>
    +            <div class="box-body">
    +
    +                <div class="row">
    +                    <div class="col-md-6">
    +                        <div class="row">
    +                            <div class="col-sm-6 form-group">
    +                                <label>Enable <code>cache</code> ?</label>
    +<?php if ($data['cache_enabled'] === 'on') {
    +    $enable_cache = 'checked';
    +} else {
    +    $enable_cache = 'unchecked';
    +}
    +?>
    +                                <div class="input-group">
    +                                    <input type="checkbox" name="cache_enabled" rel="tooltip"
    +                                        title="Check here if you want to enable comment system" <?=$enable_cache;?>> Enable Cache
    +                                </div>
    +
    +                                <small class="help-block">Check this if you want to enable Cache system</small>
    +                            </div>
    +                            <div class="col-md-6 form-group">
    +                                <label>Cache Timeout</label>
    +                                    <input type="number" name="cache_timeout" value="<?=$data['cache_timeout'];?>" class="form-control">
    +                                <span>Cache file timeout, in <kbd>seconds</kbd></span>
    +                            </div>
    +                        </div>
    +
    +                    </div>
    +                    
    +                    <div class="col-md-6 ">
    +                        <div class="form-group">
    +                        <label>Cache Path</label>
    +                        <input type="text" class="form-control" name="cache_path" value="<?=$data['cache_path'];?>">
    +                        <span class="help-block">Cache path, don't forget it to <code>chmod</code> it <kbd>777</kbd></span>
    +                        </div>
    +                    </div>
    +
    +                </div>
    +
    +            </div>
    +            <!-- /.box-body -->
    +<!--            <div class="box-footer">-->
    +<!---->
    +<!--            </div>-->
    +            <!-- /.box-footer-->
    +        </div>
    +        <!-- /.box -->
    +    </section>
    +
    +
    +<input type="hidden" name="token" value="<?=TOKEN;?>">
    +</form>
    
  • gxadmin/inc/categories.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/comments.php+1 1 modified
    @@ -7,7 +7,7 @@
      *
      * @since 1.0.0 build date 20160830
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/comments-settings.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.8 build date 20160313
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/dashboard.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/media.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/menus_form_edit.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/menus_form.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/menus.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/modules.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/multilang.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.7 build date 20150718
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/pages_form.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/pages.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/permalink.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.8 build date 20160313
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/posts_form.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/posts.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/settings.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/tags.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.8 build date 20160315
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/themes.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/user_form.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/inc/user.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/index.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20140928
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/login.php+7 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20140928
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -35,6 +35,12 @@
         echo $e->getMessage();
     }
     
    +if (!isset($_GET['backto']) && isset($_SERVER['HTTP_REFERER'])) {
    +    header('Location: '.Site::$url.'login.php?backto='.$_SERVER['HTTP_REFERER']);
    +} elseif (!isset($_GET['backto']) && !isset($_SERVER['HTTP_REFERER'])) {
    +    header('Location: '.Site::$url.'login.php?backto='.Site::$url);
    +}
    +
     System::gZip();
     $data = [];
     if (isset($_POST['login'])) {
    
  • gxadmin/logout.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20141003
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • gxadmin/themes/header.php+6 1 modified
    @@ -232,7 +232,7 @@
                         </a>
                     </li>
                     <li <?=(isset($_GET['page']) && ($_GET['page'] == 'multilang' || $_GET['page'] == 'settings'
    -                        || $_GET['page'] == 'permalink' || $_GET['page'] == 'comments-settings')) ? 'class="active treeview"' : 'class="treeview"'; ?> >
    +                        || $_GET['page'] == 'permalink' || $_GET['page'] == 'comments-settings' || $_GET['page'] == 'cache' )) ? 'class="active treeview"' : 'class="treeview"'; ?> >
                         <a href="#"><i class="fa fa-wrench fa-fw"></i> <span><?=SETTINGS; ?></span>
     
                             <span class="pull-right-container">
    @@ -260,6 +260,11 @@
                                     <i class="fa fa-comments"></i> <span>Comments Settings</span>
                                 </a>
                             </li>
    +                        <li <?=(isset($_GET['page']) && $_GET['page'] == 'cache') ? 'class="active"' : ''; ?>>
    +                            <a href="index.php?page=cache">
    +                                <i class="fa fa-archive"></i> <span>Cache Settings</span>
    +                            </a>
    +                        </li>
                         </ul>
                     </li>
                     <?php echo Theme::thmMenu(); ?>
    
  • gxadmin/themes/install/step0.php+1 1 modified
    @@ -5,7 +5,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 0.0.1 build date 20150221
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • gxadmin/themes/install/step1.php+1 1 modified
    @@ -5,7 +5,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 0.0.1 build date 20150221
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • gxadmin/themes/install/step2.php+1 1 modified
    @@ -5,7 +5,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 0.0.1 build date 20150221
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • gxadmin/themes/install/step3.php+1 1 modified
    @@ -5,7 +5,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 0.0.1 build date 20150221
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • gxadmin/themes/install/step4.php+1 1 modified
    @@ -5,7 +5,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 0.0.1 build date 20150221
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • inc/lib/Cache.class.php+64 0 added
    @@ -0,0 +1,64 @@
    +<?php
    +
    +defined('GX_LIB') or die('Direct Access Not Allowed!');
    +/*
    + * GeniXCMS - Content Management System
    + *
    + * PHP Based Content Management System and Framework
    + *
    + * @since 1.1.2 build date 20170912
    + *
    + * @version 1.1.2
    + *
    + * @link https://github.com/semplon/GeniXCMS
    + * @link http://genix.id
    + *
    + * @author Puguh Wijayanto <psw@metalgenix.com>
    + * @copyright 2014-2017 Puguh Wijayanto
    + * @license http://www.opensource.org/licenses/mit-license.php MIT
    + */
    +
    +/**
    +* 
    +*/
    +class Cache
    +{
    +    private static $enabled;
    +    private static $path;
    +    private static $timeout;
    +    private static $cachefile;
    +
    +    function __construct()
    +    {
    +        self::$enabled = Options::v('cache_enabled');
    +        self::$path = Options::v('cache_path');
    +        self::$timeout = Options::v('cache_timeout');
    +        $url    = 'http://'.$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $_SERVER['QUERY_STRING'];
    +        self::$cachefile = GX_PATH.self::$path.md5($url).'.cache';
    +    }
    +
    +    public static function start() {
    +        if (self::$enabled == 'on') {
    +            # code...
    +        
    +            $cachefile = self::$cachefile;
    +            $cachetime = self::$timeout; 
    +
    +            if(file_exists($cachefile) && time()-$cachetime <= filemtime($cachefile)){
    +              $c = @file_get_contents($cachefile);
    +              echo $c;
    +              exit;
    +            }else{
    +              @unlink($cachefile);
    +            }
    +        } 
    +    }
    +
    +    public static function end() {
    +        if (self::$enabled == 'on') {
    +            $cachefile = self::$cachefile;
    +            $c = ob_get_contents();
    +            file_put_contents($cachefile, $c);
    +        }
    +    }
    +}
    \ No newline at end of file
    
  • inc/lib/Categories.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140930
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Comments.class.php+36 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 1.0.0 build date 20160830
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -447,6 +447,41 @@ public static function isEnable()
             }
         }
     
    +    /**
    +     * $vars = array(
    +     *     'type'    => '',
    +     *     'num'     => '',
    +     *     'post_id' => ''
    +     * );
    +     *
    +     */
    +
    +    public static function recent($vars='')
    +    {
    +        $postID = isset($vars['post_id']) ? " AND `post_id` = '".Typo::int($vars['post_id'])."'" : '';
    +        $type = isset($vars['type']) ? Typo::cleanX($vars['type']) : 'post';
    +        $num = isset($vars['num']) ? Typo::int($vars['num']) : '10';
    +        $sql = "SELECT * FROM `comments`
    +                WHERE `type` = '{$type}' {$postID} AND `status` = '1'
    +                ORDER BY `date` DESC LIMIT {$num}";
    +        $comments = Db::result($sql);
    +
    +        if (isset($comments['error'])) {
    +            $comments['error'] = 'No Comments found.';
    +        } else {
    +            $html = "<ol class='list-unstyled'>";
    +            foreach ($comments as $key => $value) {
    +                $comment = substr($value->comment, 0, 30);
    +                $author = !empty($value->userid) ? $value->userid: $value->name;
    +                $date = Date::format($value->date);
    +                 $html .= "<li><a href='".Url::$type($value->post_id)."'>{$value->comment}</a><small>by {$author} on {$date}</small></li>";
    +            }
    +            $html .= "</ol>";
    +        }
    +
    +        return $html;
    +    }
    +
         public static function spamWord()
         {
             $badWord = array(
    
  • inc/lib/Control/Ajax/saveimage-ajax.control.php+1 1 modified
    @@ -7,7 +7,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 0.0.1 build date 20141003
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • inc/lib/Control/Ajax/tags-ajax.control.php+1 1 modified
    @@ -7,7 +7,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 0.0.8 build date 20160317
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • inc/lib/Control/Ajax/version-ajax.control.php+1 1 modified
    @@ -7,7 +7,7 @@
      * PHP Based Content Management System and Framework
      * @package GeniXCMS
      * @since 1.0.0 build date 20160804
    - * @version 1.1.1
    + * @version 1.1.2
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
      * @author Puguh Wijayanto <psw@metalgenix.com>
    
  • inc/lib/Control/Backend/cache.control.php+76 0 added
    @@ -0,0 +1,76 @@
    +<?php
    +
    +defined('GX_LIB') or die('Direct Access Not Allowed!');
    +/**
    + * GeniXCMS - Content Management System
    + *
    + * PHP Based Content Management System and Framework
    + *
    + * @since 1.1.2 build date 20170912
    + *
    + * @version 1.1.2
    + *
    + * @link https://github.com/semplon/GeniXCMS
    + * @link http://genix.id
    + *
    + * @author Puguh Wijayanto <psw@metalgenix.com>
    + * @copyright 2014-2017 Puguh Wijayanto
    + * @license http://www.opensource.org/licenses/mit-license.php MIT
    + */
    +
    +
    +if (User::access(1)) {
    +    $data['sitetitle'] = "Cache Settings";
    +
    +    if (isset($_POST['change'])) {
    +        $token = Typo::cleanX($_POST['token']);
    +        if (!isset($_POST['token']) || !Token::validate($token)) {
    +            $alertDanger[] = TOKEN_NOT_EXIST;
    +        }
    +
    +        if (!isset($alertDanger)) {
    +            $vars = array();
    +            $flip = array_flip($_POST);
    +        // print_r($_POST);
    +            $sql = "SELECT * FROM `options` WHERE `value` = 'on'";
    +            $q = Db::result($sql);
    +            $input = array('cache_enabled', 'cache_path', 'cache_timeout');
    +
    +            foreach ($q as $ob) {
    +                if (in_array($ob->name, $input)) {
    +                    if (isset($flip[$ob->name])) {
    +                        $vars[$ob->name] = 'on';
    +                    } else {
    +                        $vars[$ob->name] = 'off';
    +                    }
    +                }
    +            }
    +
    +            unset($_POST['token']);
    +            unset($_POST['change']);
    +        // print_r($vars);
    +            foreach ($_POST as $key => $val) {
    +                $vars[$key] = Typo::cleanX($val);
    +            }
    +        // print_r($vars);
    +
    +            Options::update($vars);
    +            new Options();
    +        } else {
    +            $data['alertDanger'] = $alertDanger;
    +        }
    +    }
    +
    +    $data['cache_enabled'] = Options::v('cache_enabled');
    +    $data['cache_path'] = Options::v('cache_path');
    +    $data['cache_timeout'] = Options::v('cache_timeout');
    +
    +    Theme::admin('header', $data);
    +    System::inc('cache', $data);
    +    Theme::admin('footer');
    +
    +} else {
    +    Theme::admin('header');
    +    Control::error('noaccess');
    +    Theme::admin('footer');
    +}
    \ No newline at end of file
    
  • inc/lib/Control/Backend/categories.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/comments.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 1.0.0 build date 20160830
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/comments-settings.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20160313
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/default.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/media.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150312
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/menus.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141007
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/mods.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/modules.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150312
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/multilang.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150718
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/pages.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/permalink.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20160313
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/posts.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/settings.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/tags.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/themes.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150312
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Backend/users.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150312
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Error/400.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150219
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Error/403.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150219
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Error/404.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150219
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Error/500.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150219
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Error/noaccess.control.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20150219
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Frontend/author.control.php+3 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -28,6 +28,7 @@
     $data['max'] = Options::v('post_perpage');
     //echo User::validate($author);
     if (User::validate($author)) {
    +    Cache::start();
         if (SMART_URL) {
             if (isset($data['paging'])) {
                 $paging = $data['paging'];
    @@ -91,6 +92,7 @@
         Theme::theme('header', $data);
         Theme::theme('author', $data);
         Theme::footer($data);
    +    Cache::end();
         exit;
     } else {
         Control::error('404');
    
  • inc/lib/Control/Frontend/cat.control.php+3 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -30,6 +30,7 @@
     $data['max'] = Options::v('post_perpage');
     
     if (Categories::exist($cat)) {
    +    Cache::start();
         if (SMART_URL) {
             if (isset($data['paging'])) {
                 $paging = $data['paging'];
    @@ -84,6 +85,7 @@
         Theme::theme('header', $data);
         Theme::theme('cat', $data);
         Theme::footer();
    +    Cache::end();
         exit;
     } else {
         Control::error('404');
    
  • inc/lib/Control/Frontend/default.control.php+3 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -17,6 +17,7 @@
      * @copyright 2014-2017 Puguh Wijayanto
      * @license http://www.opensource.org/licenses/mit-license.php MIT
      */
    +Cache::start();
     
     $post = '';
     $data = Router::scrap($param);
    @@ -74,5 +75,6 @@
     Theme::theme('index', $data);
     Theme::footer();
     
    +Cache::end();
     /* End of file default.control.php */
     /* Location: ./inc/lib/Control/Frontend/default.control.php */
    
  • inc/lib/Control/Frontend/mod.control.php+3 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140805
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -26,9 +26,11 @@
     $data['sitetitle'] = Mod::getTitle($data['mod']);
     
     if (Hooks::exist($data['mod'], 'mod_control')) { // check if mod exist at hooks mod_control
    +    Cache::start();
         Theme::theme('header', $data);
         Theme::theme('mod', $data);
         Theme::footer($data);
    +    Cache::end();
         exit();
     } else {
         Control::error('404');
    
  • inc/lib/Control/Frontend/page.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Frontend/post.control.php+3 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -45,10 +45,12 @@
     $data['posts'] = Posts::prepare($posts);
     
     if (!isset($posts['error'])) {
    +    Cache::start();
         $theme = Theme::exist($data['p_type']) ? $data['p_type']: 'single';
         Theme::theme('header', $data);
         Theme::theme($theme, $data);
         Theme::footer($data);
    +    Cache::end();
         Stats::addViews($post_id);
     
     } else {
    
  • inc/lib/Control/Frontend/rss.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150131
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Frontend/sitemap.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141007
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Frontend/tag.control.php+4 2 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141006
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -42,7 +42,7 @@
     
     if (Tags::exist($name)) {
         # code...
    -
    +    Cache::start();
         $data['max'] = Options::v('post_perpage');
     
         if (SMART_URL) {
    @@ -101,6 +101,8 @@
         Theme::theme('header', $data);
         Theme::theme('tag', $data);
         Theme::footer($data);
    +
    +    Cache::end();
         exit;
     } else {
         Control::error('404');
    
  • inc/lib/Control/Frontend/thumb.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 1.0.0 build date 20160902
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Control/Install/default.control.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150126
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Date.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.3 build date 20150126
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Db.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Files.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.2 build date 20150313
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/GxMain.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Hooks.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.6 build date 20150706
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Http.class.php+5 5 modified
    @@ -8,7 +8,7 @@
      *
      * @since 1.0.0 build date 20170118
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -138,7 +138,7 @@ public static function fetch($vars)
             }
     
             if ($curl) {
    -            $ch = curl_init();
    +            $ch = @curl_init();
     //            $opt = '';
                 $c_options[] = array(
                     CURLOPT_RETURNTRANSFER => 1,
    @@ -154,11 +154,11 @@ public static function fetch($vars)
     
                 }
     //            print_r($options);
    -            curl_setopt_array($ch, $options);
    +            @curl_setopt_array($ch, $options);
                 $fetch = curl_exec($ch);
    -            curl_close($ch);
    +            @curl_close($ch);
             } else {
    -            $fetch = file_get_contents($url);
    +            $fetch = @file_get_contents($url);
             }
     
             return $fetch;
    
  • inc/lib/Image.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150214
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Install.class.php+6 3 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150126
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -54,7 +54,7 @@ public static function makeConfig($file)
     *
     * @package GeniXCMS
     * @since 0.0.1 build date 20140925
    -* @version 1.1.0
    +* @version 1.1.2
     * @link https://github.com/semplon/GeniXCMS
     * @link http://genix.id
     * @author Puguh Wijayanto (www.metalgenix.com)
    @@ -374,7 +374,10 @@ public static function insertData()
                 (null, 'spamwords', ''),
                 (null, 'comments_perpage', '5'),
                 (null, 'comments_enable', 'on'),
    -            (null, 'db_version', '1.1.0')
    +            (null, 'db_version', '1.1.2'),
    +            (null, 'cache_enabled', 'off'),
    +            (null, 'cache_path', '/assets/cache/pages/'),
    +            (null, 'cache_timeout', '300')
                 ";
             $db->query($options);
         }
    
  • inc/lib/Language.class.php+1 1 modified
    @@ -9,7 +9,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Mail.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150126
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Menus.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141007
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Mod.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140928
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Options.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141001
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Pages.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 1.0.0 build date 20160827
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Paging.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Pinger.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150202
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Posts.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140930
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Router.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.7 build date 20150711
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Rss.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141005
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Session.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Site.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141004
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Sitemap.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141005
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link https://genix.id
    
  • inc/lib/Stats.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20150125
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/System.class.php+6 2 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -24,7 +24,7 @@ class System
          *
          * @return float
          */
    -    public static $version = '1.1.1';
    +    public static $version = '1.1.2';
     
         /**
          * GeniXCMS Version Release.
    @@ -61,6 +61,9 @@ public function __construct()
             /* Initiate Options variables. */
             new Options();
     
    +        /* Load cache configuration */
    +        new Cache();
    +
             /* Initate Token creation */
             new Token();
     
    @@ -97,6 +100,7 @@ public function __construct()
             /* Load themes configuration */
             new Theme();
     
    +        
             /* Attach Hooks : admin_page_notif_action */
             Hooks::attach('admin_page_notif_action', array('System', 'alert'));
     
    
  • inc/lib/Tags.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.8 build date 20160317
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Theme.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Token.class.php+2 2 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.2 build date 20150309
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -139,7 +139,7 @@ public static function urlMatch($token)
         {
             $tokens = json_decode(Typo::Xclean(Options::v('tokens')), true);
             $urlLive = $_SERVER['REQUEST_URI'];
    -        $urlToken = $tokens[$token]['url'];
    +        $urlToken = in_array($token, $tokens) ? $tokens[$token]['url']: '';
             if ($urlToken == $urlLive) {
                 return true;
             } else {
    
  • inc/lib/Typo.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Upload.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20141003
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Url.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140930
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/User.class.php+40 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -431,6 +431,45 @@ public static function jsonUserLocation()
     //        print_r($ctr);
             return json_encode($ctr);
         }
    +
    +    public static function checkLastRequestPassword() 
    +    {
    +        $reqPass = Session::val('reqPass');
    +        $lastReq = !empty($reqPass) ? $reqPass['time']: 0;
    +
    +        return $lastReq;
    +    }
    +
    +    public static function setLastRequestPassword() 
    +    {
    +        $ip = $_SERVER['REMOTE_ADDR'];
    +        $time = time();
    +        
    +        $vars = array(
    +            'reqPass' => array(
    +                    'time' => $time,
    +                    'ip'    => $ip
    +                )
    +            );
    +        Session::set($vars);
    +    }
    +
    +    public static function lastRequestPassword()
    +    {
    +        $limit = 1200;
    +
    +        $lastReq = self::checkLastRequestPassword();
    +        $reqTime = time() - $lastReq;
    +
    +        if ($lastReq == 0 || $reqTime > $limit ) {
    +            self::setLastRequestPassword();
    +
    +            return true;
    +        } else {
    +
    +            return false;
    +        }
    +    }
     }
     
     /* End of file user.class.php */
    
  • inc/lib/Vendor.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.3 build date 20150322
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/lib/Xaptcha.class.php+1 1 modified
    @@ -8,7 +8,7 @@
      *
      * @since 0.0.4-patch build date 20150702
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • inc/themes/gneex/index.php+17 8 modified
    @@ -115,13 +115,15 @@
                                 <div class="col-sm-8">
                                     <ul class="list-unstyled">
                                         <?php
    +                                if (!isset($post['error'])) {
                                         foreach ($post as $p => $v) {
                                             echo '
                                     <li>
                                     <h5><a href="' . Url::post($v->id) . '">' . $v->title . '</a></h5>
                                     </li>
                                     ';
    -                                    } ?>
    +                                    } 
    +                                }    ?>
                                     </ul>
     
                                 </div>
    @@ -179,13 +181,15 @@
                                         <div class="col-md-12">
                                             <ul class="list-unstyled">
                                                 <?php
    +                                        if (!isset($post['error'])) {
                                                 foreach ($post as $p => $v) {
                                                     echo '
                                             <li>
                                             <h5><a href="' . Url::post($v->id) . '">' . $v->title . '</a></h5>
                                             </li>
                                             ';
    -                                            } ?>
    +                                            } 
    +                                        }?>
                                             </ul>
     
                                         </div>
    @@ -236,13 +240,15 @@
                                         <div class="col-md-12">
                                             <ul class="list-unstyled">
                                                 <?php
    +                                        if (!isset($post['error'])) {
                                                 foreach ($post as $p => $v) {
                                                     echo '
                                             <li>
                                             <h5><a href="' . Url::post($v->id) . '">' . $v->title . '</a></h5>
                                             </li>
                                             ';
    -                                            } ?>
    +                                            } 
    +                                        }?>
                                             </ul>
     
                                         </div>
    @@ -272,8 +278,8 @@
                     <div class="row">
     
                         <ul class="list-featured">
    -                        <?php
    -
    +                    <?php
    +                    if (!isset($post['error'])) {
     
                             foreach ($post as $p) {
                                 $content = Posts::content($p->content);
    @@ -293,7 +299,8 @@
                                     </div>
                                     </a>
                                 </li>";
    -                        } ?>
    +                        } 
    +                    }?>
     
                         </ul>
                     </div>
    @@ -303,7 +310,7 @@
                     $cat = $gneex['panel_5'];
                     if (isset($cat) && $cat != ''){
                     $post = Posts::getPostCat($cat, 8);
    -                $postig = $post[0]; ?>
    +                $postig = !isset($post['error']) ? $post[0]: ''; ?>
     
                     <div class="panel panel-five">
                         <div class="panel-heading">
    @@ -315,13 +322,15 @@
                                     <ul class="list-unstyled">
                                         <?php
                                         unset($post[0]);
    +                                if (!isset($post['error'])) {
                                         foreach ($post as $p => $v) {
                                             echo '
                                     <li>
                                     <h5><a href="' . Url::post($v->id) . '">' . $v->title . '</a></h5>
                                     </li>
                                     ';
    -                                    } ?>
    +                                    } 
    +                                }?>
                                     </ul>
     
                                 </div>
    
  • inc/themes/gneex/options.php+1 1 modified
    @@ -80,7 +80,7 @@
      <!-- Content Header (Page header) -->
         <section class="content-header">
             <h1>
    -            <i class="fa fa-brush"></i>  GneeX Theme <small >v1.1.0</small>
    +            <i class="fa fa-brush"></i>  GneeX Theme <small >v1.1.1</small>
     
                 <button class="pull-right btn btn-success" type="submit" name="gneex_options_update">
                     Change
    
  • inc/themes/gneex/rightside.php+18 3 modified
    @@ -29,16 +29,31 @@
                 </div>
               </div>
     
    +          <div class="col-sm-6 col-md-12">
    +            <div class="panel panel-red ">
    +              <div class="panel-heading">
    +                <h3 class="panel-title">Recent Comments</h3>
    +              </div>
    +              <div class="panel-body">
    +              <?php
    +                echo Comments::recent();
    +              ?>
    +              </div>
    +              
    +            </div>
    +          </div>
    +
    +
               <div class="col-sm-6 col-md-12">
                 <div class="panel panel-red ">
                   <div class="panel-heading">
                     <h3 class="panel-title">Related Site</h3>
                   </div>
                   <div class="panel-body">
                     <ol class="list-unstyled">
    -                  <li><a href="https://metalgenix.com">MetalGeniX</a></li>
    -                  <li><a href="https://genix.id">GeniXCMS</a></li>
    -                  <li><a href="https://docs.genix.id">GeniXCMS Docs</a></li>
    +                  <li><a href="http://metalgenix.com">MetalGeniX</a></li>
    +                  <li><a href="http://genix.id">GeniXCMS</a></li>
    +                  <li><a href="http://docs.genix.id">GeniXCMS Docs</a></li>
                     </ol>
                   </div>
                   
    
  • inc/themes/gneex/themeinfo.php+2 2 modified
    @@ -2,8 +2,8 @@
     /*
      * Name: GneeX Theme
      * Desc: Default GeniXCMS Themes
    - * Version: 1.0.0
    - * Build: 1.1.0
    + * Version: 1.1.1
    + * Build: 1.1.2
      * Developer: GeniXCMS
      * URI: http://genix.id
      * License: MIT License
    
  • index.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20140925
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • login.php+10 2 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20140928
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -31,7 +31,14 @@
         echo $e->getMessage();
     }
     
    +if (!isset($_GET['backto']) && isset($_SERVER['HTTP_REFERER'])) {
    +    header('Location: '.Site::$url.'login.php?backto='.$_SERVER['HTTP_REFERER']);
    +} elseif (!isset($_GET['backto']) && !isset($_SERVER['HTTP_REFERER'])) {
    +    header('Location: '.Site::$url.'login.php?backto='.Site::$url);
    +}
    +
     System::gZip();
    +
     $data = [];
     if (isset($_POST['login'])) {
         $token = Typo::cleanX($_POST['token']);
    @@ -146,7 +153,8 @@
     
     <?php
     } else {
    -    echo'<div class="alert alert-info">'.MSG_USER_ALREADY_LOGGED.'<br /><a href="logout.php">'.LOGOUT.'</a></div>';
    +    $backto = isset($_GET['backto']) ? $_GET['backto']: Site::$url; 
    +    header("Location: ".$backto);
     }
     echo '</div>';
     
    
  • logout.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20141003
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • README.md+3 1 modified
    @@ -1,5 +1,5 @@
     # GeniXCMS
    
    -> Update Notice: Please Update to version v1.1.1.
    
    +> Update Notice: Please Update to version v1.1.2.
    
     
    
     [![Build Status](https://travis-ci.org/semplon/GeniXCMS.svg?branch=master)](https://travis-ci.org/semplon/GeniXCMS)
    
     [![CircleCI](https://circleci.com/gh/semplon/GeniXCMS.svg?style=shield&circle-token=c2ef105b7d61e90dadd066ad0e25e3f53d97c6c1)](https://circleci.com/gh/semplon/GeniXCMS)
    
    @@ -86,6 +86,8 @@ define('USE_MEMCACHED', false);
     - Run at your browser `http://yourwebsite.com/upgrade.php`.
    
     - Choose the previous version of your GeniXCMS version.
    
     
    
    +- Don't forget to create Cache directory if want to use Cache System
    
    +
    
     ### Showcase
    
     Showcase URL :
    
     - [http://demo.genix.id](http://demo.genix.id)
    
    
  • register.php+1 1 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20141003
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    
  • upgrade.php+31 6 modified
    @@ -6,7 +6,7 @@
      *
      * @since 0.0.1 build date 20140928
      *
    - * @version 1.1.1
    + * @version 1.1.2
      *
      * @link https://github.com/semplon/GeniXCMS
      * @link http://genix.id
    @@ -110,7 +110,7 @@
         $q = Options::update($options);
     
         $q = Options::update('siteurl', $url);
    -
    +    $q = addCacheOptions();
         $q = alterUserGroup();
     
         if ($q) {
    @@ -168,7 +168,7 @@
         $q = Options::update($opt);
     
         $q = Options::update('siteurl', $url);
    -
    +    $q = addCacheOptions();
         $q = alterUserGroup();
     
         if ($q) {
    @@ -226,7 +226,7 @@
         $q = Options::update('siteurl', $url);
     
         $q = alterUserGroup();
    -
    +    $q = addCacheOptions();
         if ($q) {
             $alertSuccess = 'Upgrade Success!';
         } else {
    @@ -276,7 +276,7 @@
         $q = Options::update($opt);
     
         $q = Options::update('siteurl', $url);
    -
    +    $q = addCacheOptions();
         $q = alterUserGroup();
         if ($q) {
             $alertSuccess = 'Upgrade Success!';
    @@ -326,20 +326,28 @@
         $q = Options::update($opt);
     
         $q = Options::update('siteurl', $url);
    +    $q = addCacheOptions();
         $q = alterUserGroup();
         if ($q) {
             $alertSuccess = 'Upgrade Success!';
         } else {
             $alertDanger[] = 'Upgrade Failed';
         }
     } elseif (isset($_POST['100'])) {
    -
    +    $q = addCacheOptions();
         $q = alterUserGroup();
         if ($q) {
             $alertSuccess = 'Upgrade Success!';
         } else {
             $alertDanger[] = 'Upgrade Failed';
         }
    +} elseif (isset($_POST['111'])) {
    +    $q = addCacheOptions();
    +    if ($q) {
    +        $alertSuccess = 'Upgrade Success!';
    +    } else {
    +        $alertDanger[] = 'Upgrade Failed';
    +    }
     }
     
     function alterUserGroup(){
    @@ -348,6 +356,16 @@ function alterUserGroup(){
         return $q;
     }
     
    +function addCacheOptions(){
    +    $vars = array(
    +        'cache_path' => '/assets/cache/pages/',
    +        'cache_timeout' => '300',
    +        'cache_enabled' => 'off'
    +      );
    +    $q = Options::insert($vars);
    +    return $q;
    +}
    +
     Theme::theme('header');
     echo '<div class="container">';
     if (isset($alertDanger)) {
    @@ -369,6 +387,13 @@ function alterUserGroup(){
     echo '
     <h1>Upgrade v'.System::$version.'</h1>
     <hr />
    +<h3>Upgrade from Version 1.0.1 - 1.1.1</h3>
    +<form method="post">
    +<div class="form-group">
    +<button name="111" class="btn btn-success"><i class="fa fa-upload"></i> Upgrade from v1.0.0-v1.1.1</button>
    +</div>
    +</form>
    +
     <h3>Upgrade from Version 1.0.0</h3>
     <form method="post">
     <div class="form-group">
    
  • VERSION+1 1 modified
    @@ -1 +1 @@
    -1.1.1
    +1.1.2
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

4

News mentions

0

No linked articles in our index yet.