Chyba pluginu WP Fastest Cache ohrožuje 600 000 WordPress webů

Během interní revize pluginu WP Fastest Cache byla týmem WPScan odhalena závažná zranitelnost typu SQL injection. Tato zranitelnost může umožnit neautentifikovaným útočníkům přečíst celý obsah databáze WordPressu prostřednictvím časově závislé slepé zátěže SQL injection.

Jakmile byla zranitelnost odhalena, tým WPScan neprodleně upozornil vývojáře pluginu, kteří následně vydali verzi 1.2.2, která tuto zranitelnost opravuje. Je nezbytné, aby správci WordPressu zajistili plnou aktualizaci svých instalací, aby se účinně ochránili před touto zranitelností.

Funkce is_user_admin třídy WpFastestCacheCreateCache je zranitelná vůči nástroji SQL Injection. Funkce je volána z funkce createCache.

public function is_user_admin(){
            global $wpdb;
 
            foreach ((array)$_COOKIE as $cookie_key => $cookie_value){
                if(preg_match("/wordpress_logged_in/i", $cookie_key)){
                    $username = preg_replace("/^([^\|]+)\|.+/", "$1", $cookie_value);
                    break;
                }
            }
 
            if(isset($username) && $username){            
                $res = $wpdb->get_var("SELECT `$wpdb->users`.`ID`, `$wpdb->users`.`user_login`, `$wpdb->usermeta`.`meta_key`, `$wpdb->usermeta`.`meta_value`
                                       FROM `$wpdb->users`
                                       INNER JOIN `$wpdb->usermeta`
                                       ON `$wpdb->users`.`user_login` = \"$username\" AND
                                       `$wpdb->usermeta`.`meta_key` LIKE \"%_user_level\" AND
                                       `$wpdb->usermeta`.`meta_value` = \"10\" AND
                                       `$wpdb->users`.`ID` = `$wpdb->usermeta`.user_id ;"
                                    );
 
                return $res;
            }
 
            return false;
        }

Funkce, která je součástí zásuvného modulu, načítá proměnnou $username z libovolného souboru cookie, jehož název obsahuje text wordpress_logged_in, a extrahuje data až do prvního znaku ‚|‘. Tato proměnná je následně vkládána do databázového dotazu bez jakéhokoli escapování. Je důležité si uvědomit, že tato funkce je aktivována při spuštění zásuvného modulu, což je před zavoláním funkce wp_magic_quotes() na data požadavku.

Protože výsledky SQL dotazu nejsou využívány mimo tuto funkci, neexistuje přímý způsob, jak se k nim dostat. Avšak metoda time-based blind SQL injection může využít této zranitelnosti k získání libovolných informací z databáze.

Pokud tento modul používáte na svých webech, neotálejte s aktualizací.

Zdroj: https://wpscan.com/blog/unauthenticated-sql-injection-vulnerability-addressed-in-wp-fastest-cache-1-2-2/

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *