Blog 24/7

default_role

TAB. 1Hasłopo angielsku
Po angielskudefault_role
Którą formą pisaćpo angielsku Polski odpowiednik istnieje, ale w praktyce nikt tak nie pisze. Zostaw angielski, polski trzymaj jako synonim.
Inne formydomyślna rola nowego użytkownika · New User Default Role · rola domyślna
KategoriaStrony WWW, WordPress i hosting

default_role to opcja WordPressa, która określa rolę przypisywaną każdemu nowemu użytkownikowi: zarówno temu, kto zarejestrował się sam, jak i temu, kogo dodał administrator na ekranie Użytkownicy [1]. W panelu nosi nazwę „Domyślna rola nowych użytkowników” i znajduje się w Ustawieniach ogólnych [1]. Wartością domyślną jest subscriber, czyli Subskrybent [2]. Razem z opcją users_can_register decyduje o tym, jakie uprawnienia może zdobyć obca osoba bez udziału administratora.

Jak działa

WordPress przechowuje ustawienie jako zwykłą opcję w bazie danych. Dokumentacja Options API opisuje default_role jako domyślną rolę użytkowników rejestrujących się na stronie, typu tekstowego, z wartością subscriber [2]. Obok niej leży users_can_register, czyli pole „Każdy może się zarejestrować”, typu liczbowego, domyślnie 0 [2]. Zaznaczenie tego pola pozwala każdemu założyć konto na stronie [1].

Obie opcje działają razem. Przebieg samodzielnej rejestracji pokazuje schemat poniżej.

RYS. 1Rejestracja przy otwartej rejestracji

Lista wyboru na ekranie ustawień obejmuje pięć ról: Administrator, Redaktor, Autor, Współpracownik i Subskrybent [1]. Każda z nich oznacza inny zakres ról i uprawnień użytkowników.

Odmiany

Znaczenie opcji zależy od tego, jaką rolę wskazuje. Tabela zestawia role dostępne na liście z opisem z dokumentacji WordPressa.

Rola jako default_roleCo może nowy użytkownik
Subskrybenttylko zarządzać własnym profilem [3]
Współpracownikpisać własne wpisy bez publikacji [3]
Autorpublikować własne wpisy i wgrywać pliki [3]
Redaktorpublikować i zarządzać wpisami innych osób [3]
Administratorwszystkie funkcje administracyjne strony [3]

Wtyczki mogą dopisywać własne role, na przykład klienta sklepu. Dokumentacja dla twórców wtyczek zaznacza, że rola dodana przez add_role() zostaje zapisana w bazie danych [4]. Gdy wtyczka usuwa rolę Subskrybenta, powinna ustawić nową wartość default_role przez update_option(), bo Subskrybent jest domyślną rolą WordPressa [4]. Ten sam podręcznik odradza usuwanie ról Administratora i Superadministratora oraz przypomina, że kolejne aktualizacje WordPressa mogą przywrócić usunięte role domyślne [4]. Dla bezpieczeństwa oznacza to, że lista ról na stronie zależy od historii zainstalowanych wtyczek, a nie tylko od bieżącej konfiguracji. Rola pozostawiona przez odinstalowaną wtyczkę może nadal istnieć w bazie i nadal być wskazana jako default_role, dlatego wartość opcji warto porównać z aktualną listą ról.

W WordPressie

Ryzyko pojawia się dopiero w zestawieniu z otwartą rejestracją. Przy wyłączonej rejestracji default_role dotyczy tylko kont dodawanych ręcznie przez administratora. Przy włączonej rejestracji każda rola wyższa niż Subskrybent daje nieznajomemu uprawnienia do treści, a rola Administrator — pełną kontrolę nad stroną [3].

Rola Redaktora ma dodatkowo uprawnienie unfiltered_html na pojedynczej witrynie [3]. Uprawnienie to pozwala publikować znaczniki HTML, a nawet JavaScript, a dokumentacja ostrzega przed nadawaniem go niezaufanym użytkownikom [3]. Redaktor jako rola domyślna oznacza więc w praktyce możliwość wstrzyknięcia Stored XSS przez każdego, kto założy konto.

Opcje users_can_register i default_role są też celem ataków, a nie tylko pomyłek w konfiguracji. Błąd we wtyczce, który pozwala zmieniać dowolne opcje, umożliwia atakującemu włączenie rejestracji i ustawienie roli domyślnej na Administrator. To odmiana eskalacji uprawnień, którą MITRE opisuje jako niewłaściwe przydzielanie, zmienianie lub sprawdzanie uprawnień podmiotu [7].

Zagrożenia i skutki

Jak się bronić

  • Wyłączyć rejestrację, jeśli strona jej nie potrzebuje. Domyślnie jest wyłączona [2].
  • Przy włączonej rejestracji zostawić rolę Subskrybenta albo najniższą rolę wymaganą przez wtyczkę sklepu lub forum, zgodnie z zasadą najmniejszych uprawnień. MITRE zaleca staranne zarządzanie uprawnieniami i jawne wydzielanie stref zaufania [7].
  • Okresowo sprawdzać obie opcje i listę administratorów, na przykład z wiersza poleceń:
wp option get users_can_register
wp option get default_role
wp user list --role=administrator
  • Traktować nieoczekiwaną zmianę tych opcji jako możliwy ślad włamania i monitorować ją tak samo jak zmiany w plikach.
  • Aktualizować wtyczki obsługujące rejestrację i profile, bo to one najczęściej zawierają błędy weryfikacji uprawnień.

Historia i przykłady

W czerwcu 2023 roku WPScan opisał kampanię wykorzystującą wtyczkę Ultimate Member w wersjach poniżej 2.6.7, zainstalowaną na ponad 200 000 stron [6]. Błąd, oznaczony jako CVE-2023-3460, polegał na tym, że wtyczka nie blokowała tworzenia kont z dowolnymi uprawnieniami, co pozwalało zakładać konta administratorów bez logowania [5]. Atakujący w trakcie rejestracji manipulowali polem wp_capabilities, w którym WordPress przechowuje rolę i uprawnienia użytkownika [6]. Schemat ataku obejmował rejestrację, logowanie przez wp-login.php i wgranie złośliwej wtyczki [6]. WPScan zalecał aktualizację do 2.6.7 i przegląd kont administratorów [6]. Przypadek pokazuje, że rola nowego konta może zostać podniesiona z pominięciem default_role, dlatego sama poprawna wartość opcji nie wystarcza.

TAB. 2

Przypisy

7
  1. [1] Settings General Screen · WordPress.org
  2. [2] Options API — Common APIs Handbook · WordPress.org
  3. [3] Roles and Capabilities · WordPress.org
  4. [4] Roles and Capabilities — Plugin Handbook · WordPress.org
  5. [5] Ultimate Member before 2.6.7 — WPScan vulnerability entry (CVE-2023-3460) · WPScan
  6. [6] Hacking Campaign Actively Exploiting Ultimate Member Plugin · WPScan
  7. [7] CWE-269: Improper Privilege Management · MITRE
TAB. 3

Hasła w tym artykule

10
TAB. 4

Linkują tutaj

7

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com