Blog 24/7

ujawnienie informacji

TAB. 1Hasłopo polsku
Po angielskuinformation disclosure
Którą formą pisaćpo polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie.
Inne formyujawnienie wrażliwych danych · ujawnienie danych uwierzytelniających · Information Exposure (nazwa z bazy Wordfence)
KategoriaPodatności i klasy błędów

Ujawnienie informacji to podatność, przez którą aplikacja udostępnia informacje wrażliwe podmiotowi, który nie ma wyraźnego upoważnienia do dostępu do nich [1]. W katalogu CWE odpowiada jej słabość CWE-200 [1]. Nazwa opisuje błąd w oprogramowaniu, a nie zdarzenie. Samo zdarzenie, w którym dane faktycznie wypłynęły, to wyciek danych, a przy danych osobowych naruszenie ochrony danych osobowych w rozumieniu RODO.

Jak działa

MITRE opisuje trzy drogi, którymi informacja wydostaje się z aplikacji [1]:

  • wstawienie jawne — kod celowo umieszcza dane w odpowiedzi, choć powinien je usunąć;
  • wstawienie pośrednie — inny błąd ubocznie ujawnia dane, na przykład pełną ścieżkę systemową w komunikacie błędu;
  • niezamierzony dostęp — zasoby z danymi stają się dostępne z powodu osobnej podatności.

Informacja nie musi być tajna sama w sobie, by była groźna. Ścieżka do katalogu, wersja bazy danych albo nazwa użytkownika skracają atakującemu rozpoznanie i pozwalają dobrać kolejny krok. Schemat poniżej pokazuje, jak drobne ujawnienie staje się częścią łańcucha ataku.

RYS. 1Ujawnienie informacji w łańcuchu ataku

Odmiany

MITRE wymienia rodzaje informacji, które mogą zostać ujawnione: dane prywatne, takie jak wiadomości, dane finansowe, zdrowotne i lokalizacyjne; szczegóły systemu, w tym system operacyjny i zainstalowane pakiety; tajemnice przedsiębiorstwa; konfigurację sieci; kod lub stan aplikacji; metadane, na przykład logi połączeń i nagłówki wiadomości [1]. Słabości potomne CWE-200 opisują najczęstsze kanały.

SłabośćKanał ujawnienia
CWE-209komunikat błędu z informacjami wrażliwymi [1]
CWE-532dane wrażliwe zapisane w pliku logu [1]
CWE-538informacje w plikach lub katalogach dostępnych z zewnątrz [1]

Do tej grupy należą też zjawiska opisane w osobnych hasłach: ujawnianie wersji, enumeracja użytkowników, listowanie katalogów (directory listing) i publicznie dostępne pliki wrażliwe, czyli zapomniane kopie, eksporty bazy i pliki konfiguracyjne. W zestawieniach ogólnych spotyka się też szersze pojęcie ujawnienia informacji wrażliwych (sensitive data exposure).

W WordPressie

Najczęstszym źródłem ujawnienia w WordPressie jest tryb debugowania na produkcji. Dokumentacja wyjaśnia, że stała WP_DEBUG włącza tryb debugowania w całym WordPressie, i odradza używanie jej oraz innych narzędzi debugowania na działających witrynach, bo są przeznaczone do testów lokalnych i instalacji testowych [3]. Przy włączonym WP_DEBUG_DISPLAY komunikaty są domyślnie wypisywane w HTML stron [3], więc każdy odwiedzający widzi ścieżki plików i nazwy funkcji.

Drugim źródłem jest log. WP_DEBUG_LOG zapisuje błędy domyślnie do pliku wp-content/debug.log [3]. Dokumentacja pliku wp-config.php stwierdza, że umieszczanie logów błędów w miejscach publicznie dostępnych jest zagrożeniem bezpieczeństwa, i zaleca trzymanie ich powyżej katalogu publicznego witryny [4]. Gdy to niemożliwe, proponuje ochronę pliku regułami w .htaccess [4], co opisuje hasło zabezpieczenia w .htaccess.

// wp-config.php na produkcji
define( 'WP_DEBUG', false );
define( 'WP_DEBUG_DISPLAY', false );

W kodzie wtyczek i motywów ujawnienie przybiera zwykle prostsze formy. Przykłady to punkty końcowe REST API zwracające więcej pól, niż potrzeba, pliki eksportu zapisywane w katalogu uploads bez ochrony i komunikaty, które różnią się w zależności od tego, czy konto istnieje.

Zagrożenia i skutki

MITRE klasyfikuje skutek jako odczyt danych aplikacji, czyli naruszenie poufności [1]. Dla CWE-209 opisuje, jak komunikat błędu pomaga w dalszym ataku: błąd SQL ujawnia strukturę bazy, próba path traversal ujawnia ścieżki plików, a szczegóły zapytania ułatwiają kolejne kroki [2]. Ujawnienie bywa więc przygotowaniem do SQL injection albo do przejęcia konta.

Najpoważniejsze skutki ma ujawnienie danych uwierzytelniających, kluczy API i haseł do usług zewnętrznych. Atakujący nie musi wtedy łamać zabezpieczeń, bo dostaje gotowy klucz. Ocena wagi zależy więc od tego, co wypływa, a nie od samego mechanizmu. Ta sama funkcja wypisująca szczegóły błędu jest drobnym problemem, gdy pokazuje numer wiersza w pliku, i poważnym, gdy pokazuje treść zapytania z hasłem do bazy. Dlatego przy przeglądzie podatności tej klasy trzeba ustalić, jakie dane są dostępne, dla kogo i bez jakiego uwierzytelnienia. Ujawnienie danych osobowych może dodatkowo rodzić obowiązki administratora wobec organu nadzorczego i osób, których dane dotyczą.

Jak się bronić

MITRE zaleca podział systemu na strefy, w których granice zaufania da się jednoznacznie wyznaczyć, z rozdziałem uprawnień [1], zgodnie z zasadą najmniejszych uprawnień. Dla komunikatów błędów zalecenia są konkretne [2]:

  • komunikat zawiera tylko minimum szczegółów przydatnych dla adresata;
  • szczegóły błędu trafiają do logu, a nie na ekran, przy czym log nie może zawierać haseł;
  • komunikaty nie powinny zdradzać, czy dane konto istnieje;
  • informacje debugowania nie trafiają do wersji produkcyjnej, a w PHP należy wyłączyć display_errors;
  • domyślne strony błędów są ogólne i nic nie ujawniają.

W WordPressie oznacza to wyłączony tryb debugowania na produkcji, log poza katalogiem publicznym, przegląd katalogów wp-content i uploads pod kątem zapomnianych plików oraz przegląd tego, co zwracają punkty końcowe REST API dla niezalogowanych.

Historia i przykłady

CERT Polska 3 września 2026 roku opisał podatność CVE-2026-15933 w OptimiDoc Server: oprogramowanie przechowywało poświadczenia do usług zewnętrznych jawnym tekstem, a administrator widział skonfigurowane hasła do SMTP, FTP, Active Directory i SharePoint w źródle strony panelu [5]. Problem usunięto w wersji 26.08 [5].

Ujawnienie informacji bywa też skutkiem błędu pamięci. CERT Polska 14 maja 2026 roku opisał CVE-2026-8295 w bibliotece simdjson: przepełnienie liczby całkowitej prowadziło do przydzielania zbyt małych buforów i odczytów poza nimi, co mogło powodować ujawnienie informacji lub uszkodzenie pamięci [6]. Podatne były wersje poniżej 4.6.4 [6].

TAB. 2

Przypisy

6
  1. [1] CWE-200: Exposure of Sensitive Information to an Unauthorized Actor · MITRE
  2. [2] CWE-209: Generation of Error Message Containing Sensitive Information · MITRE
  3. [3] Debugging in WordPress · WordPress.org
  4. [4] Editing wp-config.php — Configure Error Logging · WordPress.org
  5. [5] Podatność w oprogramowaniu OptimiDoc Server (CVE-2026-15933) · CERT Polska
  6. [6] Podatność w bibliotece simdjson (CVE-2026-8295) · CERT Polska
TAB. 3

Hasła w tym artykule

16
TAB. 4

Linkują tutaj

13

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