Pomoc zdalna
alerty bezpieczeństwa

Luka w Ruby on Rails (CVE-2019-5418) wciąż wykorzystywana: odczyt plików z serwera

Błąd w Action View pozwala bez logowania odczytać pliki z serwera aplikacji Rails, w tym hasła i klucze. Poprawka jest od 2019 roku, ale CISA potwierdza aktualne ataki, a exploit jest publiczny. Sprawdź wersje Rails.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
17 września 2026 9 min czytania
Programista w chaosie komunikatów o błędach w oknach aplikacji

Ten alert jest dla zarządu, CTO i CFO firm, które mają aplikację internetową (sklep, panel klienta, system rezerwacji) zbudowaną na Ruby on Rails, zwłaszcza starszą i dawno nieaktualizowaną. Werdykt: jeśli aplikacja używa Rails starszego niż 4.2.11.1, 5.0.7.2, 5.1.6.2 lub 5.2.2.1 (albo Rails 3), zleć dziś sprawdzenie wersji i aktualizację, bo luka pozwala bez logowania odczytać pliki z serwera i jest aktywnie wykorzystywana.

1. CO SIĘ STAŁO? Fakty w pigułce

Amerykańska agencja CISA 7 lipca 2025 roku dopisała podatność CVE-2019-5418 do katalogu KEV, czyli listy luk, o których ma dowody, że są wykorzystywane w prawdziwych atakach. To błąd ujawniony i załatany 13 marca 2019 roku, który po ponad sześciu latach wciąż znajduje ofiary. Termin naprawy wg CISA minął 28 lipca 2025 roku.

Błąd siedzi w Action View, części Rails, która składa stronę przed wysłaniem jej do przeglądarki. Spreparowany nagłówek Accept w żądaniu może zmusić aplikację do odczytania i odesłania dowolnego pliku z dysku serwera, o ile w aplikacji jest miejsce renderujące plik po ścieżce (render file:). Na serwerze leżą zwykle hasła do bazy, klucze sesji i dane do bramki płatniczej. Publiczny kod ataku jest dostępny od 2019 roku.

Element

Szczegóły

Identyfikator CVE

CVE-2019-5418

Data dodania do CISA KEV

2025-07-07

Termin naprawy wg CISA

2025-07-28 (21 dni od wpisu)

Produkt

Ruby on Rails, komponent Action View

Wersje zagrożone

Rails 3.x oraz od 4.0 do przed 4.2.11.1, 5.0 przed 5.0.7.2, 5.1 przed 5.1.6.2, 5.2 przed 5.2.2.1. Warunek: w aplikacji jest wywołanie render file:

Wersje bezpieczne

Action View 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2.1 i nowsze. Dla Rails 3 brak poprawki: konieczne podniesienie wersji. Pakiety dystrybucji: Debian (DLA-1739-1 i nowsze wydania), Red Hat (RHSA-2019:0796, 1147, 1149, 1289), Ubuntu 16.04 i 18.04 (USN-7646-1 z 17 lipca 2025)

Typ podatności

Przechodzenie po katalogach (path traversal) i ujawnienie zawartości plików; CWE-22 (klasyfikacja HackerOne i CISA; Red Hat: ujawnienie informacji)

Ocena CVSS

NVD: 7.5 WYSOKA (CVSS 3.1, tylko poufność) oraz 5.0 (CVSS 2.0). Red Hat: 8.1 (pełny wpływ, bo odczyt plików może prowadzić do wykonania kodu, przy trudniejszym ataku). Atak przez sieć, bez logowania i bez udziału użytkownika

2. O CO CHODZI W PROSTYCH SŁOWACH?

Wyobraź sobie recepcję biura, w której recepcjonistka pyta gościa: „dokumenty wydrukować czy nagrać na pendrive?”. Gość odpowiada: „poproszę teczkę z drugiej szafki po lewej”. I dostaje ją, bo nikt nie założył, że odpowiedź na pytanie o format może być poleceniem sięgnięcia do szafy.

Tak działał ten błąd. Przeglądarka dopisuje do każdego żądania nagłówek Accept, czyli informację, jaki format odpowiedzi jest jej wygodny. W podatnych wersjach Rails dało się w tym miejscu podać ścieżkę do pliku na serwerze, a aplikacja w miejscach renderujących plik po ścieżce odczytywała go i odsyłała. Napastnik nie potrzebuje konta, wystarczy mu adres aplikacji i jedno żądanie.

💡 Ruby on Rails to popularny zestaw narzędzi do budowy aplikacji internetowych. Nagłówek Accept to fragment żądania, w którym przeglądarka mówi, jaki format odpowiedzi preferuje. Path traversal to atak polegający na „wyjściu” poza przewidziany katalog i odczycie innych plików. Klucz sesji to sekret, którym aplikacja podpisuje ciasteczka zalogowanych użytkowników.

Scenariusz

Normalnie

Z podatnością

Klient pobiera fakturę lub regulamin

Dostaje właściwy dokument

Tak samo

Obce żądanie ze spreparowanym nagłówkiem Accept

Zwykła odpowiedź lub błąd

Treść dowolnego pliku z serwera

Plik z hasłem do bazy danych

Niedostępny z zewnątrz

Może trafić do napastnika

Klucz podpisujący sesje

Tajny

Pozwala podrobić sesję dowolnego użytkownika, także administratora

Aplikacja bez render file:

Bezpieczna na ten atak

Atak nie ma się o co zaczepić

Mosiężny dzwonek i tabliczka recepcji na drewnianej ladzieźródło: Pexels, Andrea Piacquadio

3. JAK HAKERZY TO WYKORZYSTUJĄ?

Poniżej typowy przebieg ataku dla tej klasy podatności. To scenariusz poglądowy, a nie odtworzenie konkretnego incydentu. Aplikacje internetowe są z definicji dostępne z internetu, a publiczny kod ataku istnieje od 2019 roku, więc atak może zacząć każdy, kto znajdzie podatną aplikację.

Etap

Czas

Akcja hakerów

Wynik

1. Skanowanie

T+0 min

Wyszukiwanie aplikacji na Rails i adresów, które serwują pliki

Lista potencjalnych celów

2. Odczyt plików

T+kilka minut

Żądanie ze spreparowanym nagłówkiem Accept wskazującym pliki systemowe i konfiguracyjne

Treść plików serwera

3. Kradzież sekretów

T+kilkanaście minut

Odczyt plików z hasłem do bazy, kluczem sesji, danymi bramki płatniczej i poczty

Klucze do systemów firmy

4. Przejęcie kont

T+godziny

Podrobienie sesji administratora albo bezpośrednie połączenie z bazą, jeśli jest dostępna

Dostęp do danych klientów

5. Eskalacja

T+dni

Próby wykonania kodu na serwerze z użyciem zdobytych sekretów, nadużycie integracji

Pełna kontrola nad aplikacją

6. Wyciek i szantaż

T+dni do tygodni

Kopiowanie bazy, nadużycia płatnicze, żądanie okupu

Straty i obowiązki prawne

Konkretne scenariusze zagrożenia

  • 🔴 Scenariusz 1: biuro rachunkowe udostępnia klientom panel do pobierania dokumentów; napastnik odczytuje hasło do bazy z danymi kilkuset obsługiwanych firm.
  • 🔴 Scenariusz 2: napastnik zdobywa klucz podpisujący sesje sklepu internetowego i loguje się jako administrator bez znajomości hasła.
  • 🟠 Scenariusz 3: warsztat samochodowy ma aplikację do umawiania wizyt z 2018 roku, od lat nieaktualizowaną; po wycieku trzeba wymienić hasła i klucze wpisane w wielu miejscach, o których nikt nie pamięta.

4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?

Aplikacje zamówione kilka lat temu często działają bez awarii i bez aktualizacji. To, że działają, nie znaczy, że są bezpieczne. Ta luka nie wymaga logowania, ma publiczny kod ataku i bardzo wysoką prognozę wykorzystania, a wyciek kilku plików konfiguracyjnych oznacza wymianę wszystkich sekretów aplikacji.

Obszar biznesu

Potencjalny wpływ

Czas do wystąpienia

Koszty szacunkowe

Operacyjny

Wymiana haseł, kluczy i tokenów integracji, pilna aktualizacja lub przepisanie aplikacji

Dni do tygodni

20 tys. do 250 tys. PLN (praca programistów, przestój)

Bezpieczeństwo danych

Wyciek bazy klientów, dokumentów, danych logowania

Godziny do dni

30 tys. do 250 tys. PLN (analiza powłamaniowa)

Finansowy

Nadużycia bramki płatniczej, utracona sprzedaż

Tygodnie

50 tys. do 500 tys. PLN łącznie

Reputacyjny

Klienci dowiadują się, że ich dane wyciekły z panelu firmy

Miesiące

50 tys. do 500 tys. PLN (utraceni klienci)

Prawny

Obowiązek zgłoszenia naruszenia do UODO w 72 godziny i powiadomienia osób; możliwa kara RODO do 20 mln EUR lub 4% rocznego obrotu, zależnie od okoliczności

72 godziny od wykrycia

20 tys. do 150 tys. PLN (obsługa prawna i zgłoszenia), bez ewentualnej kary

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Kwoty są orientacyjnymi widełkami dla małej i średniej firmy, nie danymi z tego incydentu.

Macierz ryzyka dla aplikacji na podatnym Rails z wywołaniem render file: Wpływ 5 | . . . . . 4 | . . . . ■ ← WYSOKIE / KRYTYCZNE 3 | . . . . . 2 | . . . . . 1 | . . . . . +-------------------- 1 2 3 4 5 Prawdopodobieństwo

Interpretacja: prawdopodobieństwo najwyższe (publiczny kod ataku, brak logowania, EPSS około 98%), a wpływ wysoki, bo sama luka daje odczyt plików, ale zdobyte sekrety zwykle otwierają drogę do pełnego przejęcia; aplikacja bez render file: lub na wersji z poprawką jest poza zasięgiem tej luki.

5. CO MUSISZ ZROBIĆ NATYCHMIAST?

Lp.

Priorytet

Działanie

Termin

Odpowiedzialny

1

🔴 NATYCHMIAST

Spisać aplikacje firmy zbudowane na Ruby on Rails i sprawdzić wersję Rails/Action View w każdej

Dziś

CTO / wykonawca aplikacji

2

🔴 NATYCHMIAST

W aplikacjach z podatną wersją: aktualizacja do 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2.1 lub nowszej wersji wspieranej

Dziś / do 3 dni

Programista / wykonawca

3

🔴 NATYCHMIAST

Jeśli aktualizacja potrwa: znaleźć wszystkie wywołania render file: i usunąć je lub zabezpieczyć

Dziś

Programista

4

🟠 PILNIE

Zaktualizować pakiety systemowe Rails na serwerach z Debianem, Red Hat lub Ubuntu (np. USN-7646-1 dla Ubuntu 16.04/18.04)

Do 3 dni

Administrator serwera

5

🟠 PILNIE

Przejrzeć logi serwera WWW pod kątem żądań z nietypowymi nagłówkami Accept zawierającymi ścieżki plików

Do 7 dni

Administrator / zespół bezpieczeństwa

6

🟠 PILNIE

Jeśli aplikacja była podatna i dostępna z internetu: wymienić hasło do bazy, klucz sesji, dane bramki płatniczej i tokeny integracji

Do 7 dni

Programista / administrator

7

🟡 WAŻNIE

Zaplanować migrację aplikacji na Rails 3 lub innych gałęziach bez wsparcia

Do 90 dni

CTO / CFO

8

🟡 WAŻNIE

Wprowadzić kwartalny przegląd wersji bibliotek w aplikacjach

Do 30 dni

CTO

Jeśli aktualizacja nie jest dostępna

Producent wydał poprawki w 2019 roku dla gałęzi 4.2, 5.0, 5.1 i 5.2. Dla Rails 3 poprawki nie wskazano. Poniższe miary tylko ograniczają ryzyko; oceny efektywności to ocena ekspercka.

Czasowa miara ochronna

Efektywność

Łatwość wdrożenia

Usunięcie lub przepisanie wywołań render file:

Wysoka: usuwa warunek ataku

Średnia: wymaga pracy programisty

Reguła na zaporze aplikacyjnej odrzucająca nagłówki Accept zawierające ścieżki plików

Średnia: może zostać obejście

Średnia

Przeniesienie sekretów poza pliki dostępne dla procesu aplikacji (np. zmienne środowiskowe, menedżer sekretów)

Średnia: ogranicza skutki odczytu plików

Średnia

Baza danych niedostępna z internetu

Średnia: utrudnia wykorzystanie skradzionego hasła

Łatwa do średniej

Przed i po działaniu

Stan

Przed działaniem

Po działaniu

Wersja Rails

Nieznana, często z 2018 roku lub starsza

Wersja z poprawką lub nowsza wspierana

Pliki na serwerze

Do odczytu przez spreparowane żądanie

Luka zamknięta

Sekrety aplikacji

W plikach, w wielu miejscach

Wymienione, zebrane w jednym miejscu

Wiedza o aplikacjach

„Działa od lat”

Spis aplikacji z wersjami bibliotek

Przegląd bibliotek

Nigdy

Co kwartał

6. KONTEKST I SKALA ZAGROŻENIA

Aspekt

Informacja

Czy jest wykorzystywana?

TAK (potwierdzone przez CISA)

Grupy przestępcze

Brak publicznych informacji

Kampanie ransomware

Brak potwierdzenia (CISA: Unknown)

Ocena CVSS

7.5 WYSOKA (NVD, CVSS 3.1); 8.1 wg Red Hat

PoC dostępny publicznie?

TAK: Exploit-DB nr 46585 oraz opis w Packet Storm (NVD odsyła do obu)

Liczba atakowanych firm

Brak publicznych informacji

Kto zgłosił błąd

John Hawthorn (GitHub)

Prognoza EPSS

Około 98,5% szansy próby wykorzystania w ciągu 30 dni, w ścisłej czołówce wszystkich podatności (wg analizy źródłowej)

Oceny wagi różnią się między instytucjami (7.5 wg NVD, 8.1 wg Red Hat), podobnie jak nazwa słabości. Dlatego lepiej nie uzależniać decyzji od progu punktowego: zdalny odczyt plików bez logowania powinien trafiać do naprawy niezależnie od liczby.

Sygnały zagrożenia dla CVE-2019-5418 CVSS 3.1 (NVD) 7.5/10 ███████████████░░░░░ WYSOKA CVSS (Red Hat) 8.1/10 ████████████████░░░░ WYSOKA EPSS ~98.5% ████████████████████ BARDZO WYSOKA Publiczny exploit TAK ████████████████████ od 2019 CISA KEV TAK ████████████████████ ataki potwierdzone

Linia czasu incydentu

2019-03-13 Rails ujawnia błąd i wydaje 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2.1 2019-03-27 Publikacja CVE-2019-5418 w NVD 2019 Publiczny exploit w Exploit-DB (46585) i Packet Storm 2019-04-23 Red Hat RHSA-2019:0796 (CloudForms 5.10) 2019-05-13 Red Hat RHSA-2019:1147 i 1149 (Software Collections) 2019-05-29 Red Hat RHSA-2019:1289 (CloudForms 5.9) 2025-07-07 CISA dodaje lukę do katalogu KEV 2025-07-17 Canonical USN-7646-1 dla Ubuntu 16.04 i 18.04 2025-07-28 Termin naprawy wg CISA dla agencji federalnych 2026-09-17: TUTAJ JESTEŚMY

7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO

Ogłoszenie producenta: Rails 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2.1 (archiwum) . Komunikat bezpieczeństwa Rails: rubyonrails-security . Wpis w NVD: nvd.nist.gov/vuln/detail/CVE-2019-5418 .

Lp.

Zadanie

Kto

Deadline

1

Ustalić, które aplikacje firmy są zbudowane na Ruby on Rails

CTO

DZISIAJ

2

Uzyskać od wykonawców pisemnie wersję Rails i informację o użyciu render file:

CTO

DZISIAJ

3

Zatwierdzić pilną aktualizację podatnych aplikacji

CTO

DZISIAJ

4

Zlecić przegląd logów i decyzję o wymianie sekretów

CTO

DO JUTRA

5

Zarezerwować budżet na aktualizację lub migrację starych aplikacji

CFO

DO JUTRA

6

Sprawdzić, czy umowy utrzymaniowe obejmują aktualizacje bibliotek, a nie tylko naprawę błędów

CFO

DO JUTRA

7

Sprawdzić historię transakcji w bramce płatniczej pod kątem nadużyć

CFO

DO JUTRA

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

8. PYTANIA DO TWOJEGO ZESPOŁU IT

#

Pytanie

Odpowiedź

Priorytet

1

Które nasze aplikacje działają na Ruby on Rails?

[lista]

🔴

2

Jaka wersja Rails/Action View jest w każdej z nich?

[wersja]

🔴

3

Czy w kodzie jest wywołanie render file:?

TAK / NIE

🔴

4

Czy pakiety systemowe Rails na serwerach mają poprawki dystrybucji?

TAK / NIE

🟠

5

Czy w logach widać żądania z nagłówkiem Accept zawierającym ścieżki plików?

TAK / NIE

🟠

6

Gdzie przechowujemy hasła i klucze aplikacji i ile miejsc trzeba zmienić przy ich wymianie?

[lista], [liczba]

🟠

7

Kiedy ostatnio aktualizowano biblioteki w aplikacji?

[data]

🟡

Pytania diagnostyczne dla managera

  • ✓ Czy wiem, jakie aplikacje firma ma w internecie i kto je utrzymuje?
  • ✓ Czy aplikacja zamówiona kilka lat temu ma kogoś, kto odpowiada za jej aktualizacje?
  • ✓ Czy nasza procedura łatania zależy od progu punktowego, czy od realnego wykorzystania luk?
  • ✓ Czy potrafimy wymienić hasła i klucze aplikacji w ciągu jednego dnia?
  • ✓ Czy mamy procedurę zgłoszenia naruszenia danych do UODO w 72 godziny?

Podsumowanie

CVE-2019-5418 pozwala bez logowania odczytać pliki z serwera aplikacji Ruby on Rails przez spreparowany nagłówek Accept, jeśli aplikacja renderuje pliki po ścieżce. Poprawka istnieje od marca 2019 roku, ale CISA w 2025 roku potwierdziła, że luka jest nadal wykorzystywana, a publiczny exploit jest łatwo dostępny. Zadanie na dziś to sprawdzić wersje Rails we wszystkich aplikacjach firmy, a przy podatnych wersjach zaktualizować je i wymienić sekrety.

Czytaj dalej

Powiązane artykuły

Zestaw zmienia się codziennie, więc przy kolejnej wizycie zobaczysz inny wycinek bloga.

Masz to samo u siebie?

Możemy się tym zająć

Krótka rozmowa wystarczy, żeby ocenić zakres prac i podać widełki kosztu. Bez zobowiązań.