NextGen Gallery – krytyczna luka w ponad 800 tys. instalacji WordPress.

Obrazek dla NextGen Gallery – krytyczna luka w ponad 800 tys. instalacji WordPress.

Ujawniono Cross-Site Request Forgery (CSRF) w NextGen Gallery, wtyczce WordPress z ponad 800 000 instalacji. Chodzi głównie o krytyczną lukę w zabezpieczeniach, która może prowadzić do zdalnego wykonania kodu (RCE) i lukę XSS. Wykorzystanie tych luk może doprowadzić do przejęcia witryny, złośliwych przekierowań, wstrzyknięcia SPAMu, phishingu i wielu innych.

CWE-352

Chodzi o budowę funkcji „is_authorized_request()” którą możemy po prostu ominąć. Funkcja ta jest używana do kontroli dostępu ustawień wtyczki. Wychodzi na to że możemy wysłać żądanie bez wymaganego parametru nonce. Czyli na przykład można przesłać dowolny kodu do pliku CSS z podwójnym rozszerzeniem (np. plik.php.css), a także przesłać taki plik jako szablon galerii, i podczas odwiedzania takiej galerii używającej tego szablonu na stronie – będziemy ofiarami podatności RCE i XSS.

Używacie wtyczki NextGen Gallery w wersji poniżej 3.5.0? Czytajcie dalej.

Przykłady luki NextGen Gallery.

 

function is_authorized_request($privilege = NULL)
{
    $retval = TRUE;
    if (!$privilege) {
        $privilege = $this->object->get_required_permission();
    }
    // Ensure that the user has permission to access this page
    if (!M_Security::is_allowed($privilege)) {
        $retval = FALSE;
    }
    // Ensure that nonce is valid
    if ($this->object->is_post_request() && (isset($_REQUEST['nonce']) && !M_Security::verify_nonce($_REQUEST['nonce'], $privilege))) {
        $retval = FALSE;
    }
    return $retval;
}

Ta funkcja łączy zbyt wiele w sobie i jest niepoprawnie skonstruowana. Niestety, błąd logiczny w funkcji is_authorized_request oznacza, że jej przebieg pozwoliłoby na kontynuację, nawet gdyby brakowało parametru $_REQUEST [„nonce”].

A to błąd.

Galeria NextGen wykorzystywała również oddzielną funkcję bezpieczeństwa, validate_ajax_request, dla różnych działań AJAX, np. do wgrywania na serwer zdjęć:

function validate_ajax_request($action = NULL, $token = false)
{
    if ($token === TRUE) {
        $token = isset($_REQUEST['nonce']) ? $_REQUEST['nonce'] : FALSE;
    }
    // TODO: Remove !$action condition. Necessary for Proofing at the moment
    return (!$action || M_Security::is_allowed($action)) && (!$token || M_Security::verify_nonce($token, $action));
}

Ta funkcja miała podobną wadę logiczną, która umożliwiałaby przetwarzanie żądań w przypadku braku parametru $ _REQUEST [„nonce”].

A więc kolejny błąd.

Obydwa błędy są to krytyczne i bardzo ważne luki w zabezpieczeniach, które mogą prowadzić do pełnego przejęcia witryny.

Zalecenia

Aby uchronić się przed możliwością wykorzystania luk, które mogą prowadzić nawet do przejęcia witryny zalecamy jak najszybszej zaktualizować wtyczkę do wersji 3.5.0 dostępnej w repozytorium WordPress.

 

Znajdź NextGen Gallery na serwerze

Mamy wiele stron WordPress na serwerze z DirectAdmin i nie wiemy czy nasze WordPressy posiadają NextGen Gallery?

Logujemy się po SSH i wykonujemy:

find $HOME -type d -name "nextgen-gallery" 2>/dev/null

co zwróci:

/home/uzytkownik1/domains/innadomena.pl/public_html/wp-content/plugins/nextgen-gallery
/home/uzytkownik1/domains/mojadomena.pl/public_html/wp-content/plugins/nextgen-gallery

 

Źródło: Severe Vulnerabilities Patched in NextGen Gallery Affect over 800,000 WordPress Sites (wordfence.com)

 

Ochrona przed lukami we wtyczkach WordPress?

 

Ochrona przed malware, atakami i podatnościami w WordPress!

Dla klientów Hostingu pod WordPress, Hostingu Elastycznego SSD oraz Hostingu WWW udostępniamy ochronę wspomaganą przez algorytmy sztucznej inteligencji (AI), które ustrzeże Twój serwer przed najnowszymi atakami, również atakami 0-Day zanim wyjdą hot-fixy!

Oprogramowanie analizuje to, co skrypty robią, a nie to, co faktycznie znajduje się w kodzie.

Sprawdź nasz Hosting pod WordPress!

O zabezpieczeniach… | Hosting pod WordPress

Przegląd prywatności
hitme logo

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.

Ściśle niezbędne ciasteczka

Niezbędne ciasteczka powinny być zawsze włączone, abyśmy mogli zapisać twoje preferencje dotyczące ustawień ciasteczek.

Facebook Pixel

Używamy narzędzia Facebook Pixel, aby śledzić działania użytkowników na naszej stronie internetowej. Facebook Pixel umożliwia nam analizowanie skuteczności reklam oraz tworzenie spersonalizowanych treści marketingowych. Dzięki temu możemy lepiej dostosować naszą ofertę do Twoich potrzeb. Zbierane dane mogą obejmować m.in. informacje o odwiedzonych stronach, kliknięciach oraz konwersjach.

Bezpieczna analityka

W celu lepszej analizy ruchu na naszej stronie internetowej korzystamy z narzędzia Matomo Analytics. Matomo jest hostowane w naszej infrastrukturze, a zbierane dane nie są udostępniane żadnym podmiotom zewnętrznym. Informacje o Twojej aktywności na stronie służą jedynie do analizy statystycznej oraz poprawy jakości naszych usług, zgodnie z przepisami RODO/GDPR.

Dane są w pełni anonimowe i nie są przekazywane poza naszą firmę.