Mega Sekurak Hacking Party w Krakowie! 20.10.2025 r. Bilety -30%
Masz wystawioną do Internetu Grafanę? Lepiej do niej zerknij… możliwe przejęcie konta
Grafana to otwartoźródłowa platforma do analizy i prezentacji danych, szeroko stosowana nie tylko w IT. Pozwala tworzyć panele prezentujące różne metryki, co powoduje, że jest popularnym rozwiązaniem wśród inżynierów IT i adminstratorów. Użytkownikom “domowym” może być znana między innymi z paneli prezentujących informacje udostępniane przez urządzenia klasy smart home (np. popularna integracja z Domoticzem). Z drugiej strony, entuzjaści chętnie integrują Grafanę z mniej oczywistymi rozwiązaniami, np. smart zegarkami.
O Grafanie zrobiło się głośno za sprawą podatności Grafana Ghost, czyli CVE-2025-4123. Podatność ta została opublikowana przez badacza bezpieczeństwa Alvaro Balada w maju 2025. Dlaczego o niej piszemy?
Rzadko się zdarza, gdy zaprezentowana zostaje tak ciekawa nie tylko podatność, co łańcuch podatności. Badaczom z OX Security, udało się zaprezentować działający PoC, który pozwala na przejęcie konta ofiary. Atak został zilustrowany na rysunku 1. Wszystko zaczyna się od elementu socjotechnicznego (co obniża nie tylko przydatność ale i CVSS score, który w przypadku tej podatności został określony na 7.6), ponieważ ofiara otrzymuje “złośliwy” URL. Błąd łączy client-side path traversal + open redirect dając w efekcie – stored XSS. W przypadku wykorzystania komponentów takich jak Grafana Image Renderer jest włączony podatność może być wykorzystana jako SSRF.

Jednak to co dzieje się dalej, to wynik sprytnego połączenia kilku luk. Po pierwsze w Grafanie występuje podatność klasy open redirect. Jednak aby ją wykorzystać trzeba wykorzystać dwa tricki. Po pierwsze:

-> aby wykorzystać przekierowanie, adres URL musi po procesie sanityzacji zawierać poprawny publiczny katalog dostępny na serwerze – np. /public w przypadku Grafany.

Przekierowanie na adres /\attacker[.]com. Warto zwrócić uwagę na znak ?, który w URL ma swoje specjalne znacznie, to dzięki niemu sekwencja /../../ nie spowoduje wyjście jeszcze poziom “wyżej”, po za zadaną domenę (źródło)
- pod drugie – wnikliwy Czytelnik zauważy, że wykorzystywana sekwencja /.. będzie normalizowana przez przeglądarki, co jednak można obejść przy pomocy kodowania, ponieważ routingiem w Grafanie zajmuje się JavaScript, który taką sekwencję przetworzy – znany chyba wszystkim pentesterom trick – ..%2f.
Dzięki temu, atakujący może dokonać przekierowania na dowolny adres, w szczególności taki, który będzie pod jego kontrolą i spowoduje załadowanie złośliwej wtyczki (pluginu) w Grafanie. Oprogramowanie to wykorzystuje do zarządzania wtyczkami specjalny URL – /a/plugin-app/explore. Użycie open-redirect do przejścia na niego spowoduje załadowanie złośliwego pluginu, który może dokonać zmiany poświadczeń administratora (zmiana maila, następnie reset hasła)
Badacze zaprezentowali filmowy PoC aby wyjaśnić zawiłość wykorzystania podatności.
Warto podkreślić, że atak można przeprowadzić w sieci lokalnej, ale wykorzystać go można również w przypadku publicznych instancji. Wedle szacunków z shodan.io, w chwili publikacji artykułu – podatnych instancji było ponad 47 tysięcy co stanowi około ⅓ wszystkich publicznych instancji Grafany – mimo tego, że pierwotna informacja o podatności ma już ponad miesiąc.
Oryginalnemu znalazcy gratulujemy ciekawego błędu, a administratorom zalecamy jak najszybszą aktualizację, aby nie doprowadzić do wycieku kluczowych informacji i przejęcia instancji, co może nieść za sobą o wiele poważniejsze konsekwencje. Warto rozważyć również czy Grafana powinna być publicznie osiągalna z Internetu. Dostęp tylko z zaufanej sieci VPN znacznie ograniczy powierzchnię ataków.
Więcej informacji o tej luce również w biuletynie dostawcy.
~Black Hat Logan