Załatane luki o wysokim priorytecie wtyczki Uncode Core

administracja

Wstęp

7 maja 2024 r. WP-Firewall, wiodąca organizacja doradcza ds. bezpieczeństwa, opublikowała szczegółowy raport na temat krytycznych luk w zabezpieczeniach odkrytych we wtyczce Uncode Core. Jeśli jesteś użytkownikiem Uncode, aktualizacja wtyczki Core do wersji co najmniej 2.8.9 jest kluczowa, aby chronić witrynę WordPress przed potencjalnymi atakami. Ten wpis zagłębi się w szczegóły tych luk w zabezpieczeniach, ich implikacje i kroki podejmowane w celu ich złagodzenia.

O wtyczce Uncode Core

Wtyczka Uncode Core, opracowana przez Undsgn, jest niezbędnym elementem motywu Uncode — niezwykle popularnego motywu premium dla witryn WooCommerce, z ponad 110 000 sprzedaży na ThemeForest. Motyw Uncode jest znany z pikselowo idealnego projektu, dzięki czemu idealnie nadaje się do różnych witryn, w tym portfolio, agencji, freelancerów, blogów i sklepów internetowych.

Luki w zabezpieczeniach

Analitycy ds. bezpieczeństwa WP-Firewall zidentyfikowali dwie poważne luki w zabezpieczeniach wtyczki Uncode Core:

1. Uwierzytelnione usuwanie dowolnych plików i katalogów

Opis: Ta luka umożliwia każdemu uwierzytelnionemu użytkownikowi z co najmniej rolą Subskrybenta usuwanie dowolnych katalogów na serwerze. Problem leży w funkcji `delete_download`, która nie ma odpowiednich uprawnień i kontroli nonce. Ta funkcja jest dołączona do akcji `wp_ajax_uncodefont_delete_download`, co umożliwia uwierzytelnionym użytkownikom jej wykorzystanie.

Dane techniczne:

funkcja delete_download() {
jeśli (isset($_REQUEST['rodzina_czcionek'])) {
$rodzina_czcionek = $_REQUEST['rodzina_czcionek'];
$font_dir = ukośnik końcowy($this->katalog_czcionek).$font_family;
Plik $fontkit_zip jest zapisany w formacie $font_dir.'.zip'.

jeśli (@file_exists($fontkit_zip)) {
jeśli (!@unlink($fontkit_zip)) {
echo json_encode(tablica(
'error' => sprintf( esc_html__( 'Nie udało się usunąć pliku zip @fontface kit %1$s.', 'uncode-core' ), $fontkit_zip )
));
umierać();
}
}

// Nie można usunąć katalogu, ponieważ unzip_file, który go utworzył, używa WP_Filesystem. Więc używamy WP_Filesystem, aby go usunąć.
$this->setup_wp_filesystem();

globalny system plików $wp;
jeśli (isset($wp_filesystem)) {
$delete_dir = $wp_filesystem->delete($font_dir, true);
jeśli (!$usuń_katalog) {
echo json_encode(array('błąd' => $delete_dir['błąd']));
umierać();
}
}

echo json_encode(array('success' => "Pobrano usunięte"));
}
umierać();
}
zawiera/font-system/font-system.php, funkcja delete_download()

Funkcja ta konstruuje zmienną `$font_dir` na podstawie danych wprowadzonych przez użytkownika (`$_REQUEST['font_family']`) bez oczyszczania, co pozwala na przeglądanie katalogów i dowolne usuwanie.

2. Uwierzytelniona eskalacja uprawnień

Opis: Ta luka umożliwia każdemu uwierzytelnionemu użytkownikowi z minimalną rolą Subskrybenta eskalację swoich uprawnień do dowolnej roli w witrynie WordPress. Jest to spowodowane niezabezpieczoną aktualizacją WP Option w funkcji `save_option`, która nie ma odpowiednich kontroli uprawnień.

Dane techniczne:

funkcja publiczna save_option() {
jeśli ( isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], 'uncode-core-settings-nonce' ) ) {
jeśli ( isset( $_POST['wartość'] ) && $_POST['wartość'] && isset( $_POST['identyfikator_opcji'] ) && $_POST['identyfikator_opcji'] ) {
$autoload = isset( $_POST['autoload'] ) && $_POST['autoload'] === 'prawda' ? prawda : fałsz;
update_option( $_POST['option_id'], $_POST['value'], $autoload );
---------- WYCIĄGNIJ TUTAJ ----------
zawiera/core-settings/class-core-settings.php, funkcja save_option()

Nonce używany w tej funkcji może zostać pobrany przez dowolnego uwierzytelnionego użytkownika z dostępem do obszaru wp-admin, co umożliwia nieautoryzowane aktualizacje opcji i eskalację uprawnień.

Łatka

Aby uporać się z tymi lukami, twórcy wtyczki Uncode Core wydali wersję 2.8.9, która zawiera następujące poprawki:

Uwierzytelnione usuwanie dowolnych plików i katalogów:Wprowadzono sprawdzanie uprawnień i wartości nonce w funkcji `delete_download`.

Uwierzytelniona eskalacja uprawnień:Zastosowano sprawdzanie uprawnień i wartości nonce w funkcji `save_option` oraz dodano sprawdzanie białej listy dla kluczy opcji.

Wniosek

Zapewnienie bezpieczeństwa witryny WordPress wymaga aktualizowania się za pomocą najnowszych poprawek i ostrzeżeń dotyczących bezpieczeństwa. Luki w zabezpieczeniach wtyczki Uncode Core podkreślają znaczenie implementacji właściwych kontroli uprawnień i wartości nonce dla wszelkich wrażliwych działań. Zawsze oczyszczaj dane wprowadzane przez użytkownika i ograniczaj zakres tego, co można zaktualizować lub usunąć za pomocą działań użytkownika.

Aby uzyskać bardziej szczegółowe informacje, możesz przeczytać pełną informację dotyczącą bezpieczeństwa na stronie internetowej WP-Firewall Tutaj.

Zachowaj bezpieczeństwo

WP-Firewall oferuje różne rozwiązania dla bezpieczeństwa WordPress, w tym audyt wtyczek, monitorowanie luk w zabezpieczeniach i reagowanie na nie oraz zarządzane usługi bezpieczeństwa WordPress. Jeśli jesteś programistą wtyczek lub badaczem bezpieczeństwa, rozważ dołączenie do WP-Firewall.


wordpress security update banner

Otrzymaj WP Security Weekly za darmo 👋
Zarejestruj się teraz
!!

Zarejestruj się, aby co tydzień otrzymywać na skrzynkę pocztową aktualizacje zabezpieczeń WordPressa.

Nie spamujemy! Przeczytaj nasze Polityka prywatności Więcej informacji znajdziesz tutaj.