vulnerabiliry

  • Непокрита уязвимост във всички версии на WordPress позволява изпълнението на произволен код

    “Ограничението” при тази уязвимост е, че за да бъде възможно експлоатирането, преди това трябва да се сдобиете с права за четене и запис на медийни файлове. Тоест, за да може злонамерен потребител да се възползва от уязвимостта, той трябва да има права върху системата на минимално ниво “Автор”.

    Какви са последствията?

    Веднъж сдобил се с необходимите права, злонамерен потребител, който е запознат с уязвимостта може да изтрие всеки файл от инсталацията на WordPress. Под заплаха са и файловете на сървъра, върху който процеса PHP има разрешение за изтриване. Атакуващият може също така да изтрие цяла WordPress инсталация и да заобиколи мерките за сигурност, за да изпълни произволен код на сървъра.

    Сред един от файловете, които могат да бъдат изтрити е сърварният конфигурационен файл – .htaccess (който може да съдържа ограничения, свързани със сигурността). Друг важен компонент, с който може да се сдобие атакуващият е съдържанието на wp-config.php (който съдържа идентификационните данни за базата данни). И двата файла са изключително важни за сигурността на инсталацията и достъпа до тях би довел до пълно компрометиране на системата.

    Друг подход, които атакуващият може да предприеме е да изтрие wp-config.php и така да задейства процеса на инсталиране на WordPress при следващото посещение на уебсайта. Това от своя страна ще му позволи да премине през процеса на инсталиране и да създаде администраторски акаунти по свой избор, след което да премине към следващата стъпка по изпълнение на произволен код върху машината.

    Има ли фикс и как можем сами да си помогнем

    Въпреки че в началото на годината от екипа, отговарящ за сигурността на WP беше получено уверение, че проблемът ще бъде отстранен в следващите шест месеца. Проблемът все още е на лице и няма яснота кога ще бъде пусната кръпка.

    Тъй като атаката изисква потребителски акаунт, с уязвимостта не може да бъде злоупотребено масово, с цел компрометиране на произволни WordPress сайтове. Въпреки всичко, ето какви мерки можем да предприемем ако все пак се налага върху системата да работи повече от един потребител с минимум авторска роля.

    Като за начало се уверете, че процесът на PHP разполага само с толкова права, колкото са необходими за безпроблемната работа на сайта. Тоест – прилагайте златното правило за “least privileges”, когато това е възможно

    Също така, като временно решение можете да добавите следния код във файла functions.php, върху темата, която използвате.

    
    add_filter( 'wp_update_attachment_metadata', 'rips_unlink_tempfix' );
    
    function rips_unlink_tempfix( $data ) {
    
    if( isset($data['thumb']) ) {
    
    $data['thumb'] = basename($data['thumb']);
    
    }
    
    return $data;
    
    }
    
    

    Това, което прави посочения код е да се “закачи” за функцията ‘wp_update_attachment_metadata’ и да се увери, че данните в променливата ‘thumb’ нямат непозволени стойности, които биха позволили експлоатация през path traversal.

    И не на последно място, винаги използвайте защитна стена с възможност за WAF (Web Application Firewall). Конфигуриран “правилно”, този инструмент може да ви спести доста главоболия.

    Бъдете винаги в крак с новините от света на информационната сигурност – станете наши фенове във Facebook. 

Back to top button