Blog 24/7

podatność wykorzystywana bez uwierzytelnienia

TAB. 1Hasłopo polsku
Po angielskuunauthenticated vulnerability
Którą formą pisaćpo polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie.
Inne formypodatność niewymagająca uwierzytelnienia · luka wykorzystywana bez logowania · podatność bez uwierzytelnienia (skrót, spotykany w tytułach)
KategoriaPodatności i klasy błędów

Podatność wykorzystywana bez uwierzytelnienia to podatność, którą atakujący może wykorzystać, nie mając konta w systemie i nie logując się. W skali CVSS odpowiada jej wartość „None” metryki Privileges Required: atakujący przed atakiem nie ma żadnych uprawnień ani dostępu do ustawień i plików podatnego systemu [1]. Taka luka jest groźniejsza od błędów wymagających konta, bo krąg możliwych napastników obejmuje każdego, kto może wysłać żądanie do serwera. W opisach podatności pojawia się zwykle jako określenie „bez uwierzytelnienia” albo „nieuwierzytelniony atakujący”.

Jak działa

Uwierzytelnianie odpowiada na pytanie, kim jest użytkownik, a autoryzacja na pytanie, co wolno mu zrobić. Luka bez uwierzytelnienia pojawia się, gdy funkcja, która powinna wymagać potwierdzonej tożsamości, jest dostępna dla każdego. MITRE opisuje ten błąd jako CWE-306: produkt nie wykonuje uwierzytelnienia dla funkcji, która wymaga potwierdzonej tożsamości użytkownika albo zużywa dużo zasobów [2]. Skutek MITRE ujmuje krótko: odsłonięcie krytycznej funkcji daje atakującemu poziom uprawnień tej funkcji [2].

Nie każda luka bez uwierzytelnienia wynika z braku logowania w kodzie. Często funkcja jest celowo publiczna, na przykład wyszukiwarka czy formularz kontaktowy, a błąd tkwi w tym, co robi z danymi. Wtedy klasa błędu jest inna, na przykład SQL injection albo path traversal, ale warunek wykorzystania pozostaje ten sam: wystarczy żądanie HTTP.

Schemat poniżej pokazuje typowy przebieg ataku na publiczny punkt końcowy.

RYS. 1Atak bez uwierzytelnienia

Poziomy wymaganych uprawnień

Specyfikacja CVSS 3.1 dzieli wymagane uprawnienia na trzy poziomy [1]. Od poziomu zależy, jak wielu ludzi może lukę wykorzystać.

Privileges RequiredCo musi mieć atakującyPrzykład w WordPressie
None (N)nic, atak przed zalogowaniem [1]publiczny punkt końcowy wtyczki
Low (L)zwykłe konto z podstawowymi uprawnieniami [1]konto subskrybenta
High (H)uprawnienia administracyjne [1]konto administratora

Metryka Attack Vector o wartości Network opisuje z kolei lukę, którą da się wykorzystać zdalnie, przez sieć [1]. Połączenie obu wartości, dostępu sieciowego i braku wymaganych uprawnień, oznacza lukę dostępną dla każdego w internecie.

W WordPressie

Strona WordPress ma kilka miejsc, w których kod wtyczek i motywów obsługuje żądania anonimowych gości. To one są głównym źródłem luk bez uwierzytelnienia; zob. podatność we wtyczce.

Akcje AJAX. Hak wp_ajax_nopriv_{$action} uruchamia akcje AJAX dla użytkowników niezalogowanych [4]. Jeśli wtyczka podepnie pod niego funkcję zapisującą ustawienia albo pliki i nie sprawdzi uprawnień, dowolna osoba może ją wywołać. Nonce nie zastępuje tu kontroli uprawnień, bo nie potwierdza tożsamości użytkownika.

REST API. Każdy własny punkt końcowy REST ma funkcję permission_callback, która sprawdza, czy użytkownik może wykonać daną akcję [5]. Dla punktów publicznych dokumentacja dopuszcza __return_true, a od wersji 5.5 WordPress ostrzega, gdy tego argumentu brakuje [5]. Dokumentacja zaleca sprawdzanie current_user_can() zamiast samego faktu zalogowania [5]. Pomyłka w tym miejscu daje niezabezpieczony endpoint REST API.

Rdzeń. Luki bez uwierzytelnienia zdarzają się także w samym WordPressie. Przykład z 2026 roku opisuje ostatnia sekcja.

Zagrożenia i skutki

Brak bariery logowania sprawia, że lukę można wykorzystywać masowo. Wystarczy lista adresów stron z podatną wersją i automat, który wysyła żądania; skanowanie internetu pod kątem konkretnej luki nie wymaga żadnych danych o ofiarach. Skutek zależy od klasy błędu. MITRE wymienia dla CWE-306 odczyt i zmianę danych oraz wykonanie dowolnego kodu [2].

W zestawieniu CWE Top 25 za 2025 rok słabość CWE-306 zajęła 21. miejsce, a pokrewny brak autoryzacji, CWE-862, miejsce 4. [3].

Jak się bronić

MITRE zaleca podział aplikacji na strefy: anonimową, zwykłą, uprzywilejowaną i administracyjną, z jednym, scentralizowanym mechanizmem uwierzytelniania [2]. Zaleca też, by kontrole wykonywane po stronie klienta powtarzać na serwerze i korzystać ze sprawdzonych bibliotek zamiast własnych rozwiązań [2].

Dla właściciela strony najważniejsza jest szybka łatka (patch). Luki bez uwierzytelnienia są pierwsze na liście do aktualizacji, bo okno między publikacją poprawki a pierwszymi atakami bywa krótkie. Do czasu aktualizacji ryzyko może zmniejszyć WAF z regułą blokującą znany wzorzec ataku, czyli wirtualne patchowanie (virtual patching). Pomaga też ograniczanie powierzchni ataku: usuwanie nieużywanych wtyczek zmniejsza liczbę publicznych punktów końcowych.

Historia i przykłady

22 września 2026 roku WordPress wydał wersję 7.1.2 z poprawką luki CVE-2026-87902 [6]. Według komunikatu nieuwierzytelniony atakujący mógł w pewnych warunkach doprowadzić do dołączenia czytelnego lokalnego pliku PHP spoza katalogów aktywnego motywu, co mogło skończyć się zdalnym wykonaniem kodu [6]. Podatne były wersje od 4.7 do 7.1.1, a poprawkę przeniesiono do wszystkich gałęzi otrzymujących poprawki bezpieczeństwa [6]. Help Net Security podkreślił, że atakujący nie potrzebował konta na stronie ani działania kogokolwiek, kto je ma; lukę oceniono na 9,2 w CVSS 4.0 [7]. Dwa dni po wydaniu poprawki serwis donosił o aktywnym wykorzystywaniu luki i o publicznie dostępnych narzędziach do skanowania [7]. 25 września 2026 roku CISA dodała CVE-2026-87902 do katalogu KEV [8].

TAB. 2

Przypisy

8
  1. [1] Common Vulnerability Scoring System v3.1: Specification Document · FIRST
  2. [2] CWE-306: Missing Authentication for Critical Function · MITRE
  3. [3] 2025 CWE Top 25 Most Dangerous Software Weaknesses · MITRE
  4. [4] wp_ajax_nopriv_{$action} — Hook · WordPress.org
  5. [5] Adding Custom Endpoints — REST API Handbook · WordPress.org
  6. [6] WordPress 7.1.2 Release · WordPress.org
  7. [7] WordPress 7.1.2 fixes critical unauthenticated path traversal vulnerability (CVE-2026-87902) · Help Net Security
  8. [8] CISA Adds One Known Exploited Vulnerability to Catalog · CISA
TAB. 3

Hasła w tym artykule

20
TAB. 4

Linkują tutaj

24

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