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.
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ć
ź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
🔴 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
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)
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-5418CVSS 3.1 (NVD) 7.5/10 ███████████████░░░░░ WYSOKACVSS (Red Hat) 8.1/10 ████████████████░░░░ WYSOKAEPSS ~98.5% ████████████████████ BARDZO WYSOKAPubliczny exploit TAK ████████████████████ od 2019CISA 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.12019-03-27 Publikacja CVE-2019-5418 w NVD2019 Publiczny exploit w Exploit-DB (46585) i Packet Storm2019-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 KEV2025-07-17 Canonical USN-7646-1 dla Ubuntu 16.04 i 18.042025-07-28 Termin naprawy wg CISA dla agencji federalnych2026-09-17: TUTAJ JESTEŚMY
7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO
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.
Luka w N-able N-central pozwala bez logowania uruchomić kod na serwerze, z którego zarządza się komputerami wielu firm. CISA potwierdza ataki. Zaktualizuj do 2026.3.1.14, odetnij konsolę od internetu i sprawdź konta.
Błąd w bibliotece Starlette, podstawie FastAPI, pozwala omijać zabezpieczenia części aplikacji, a w łańcuchu z luką LiteLLM przejąć bramkę AI. CISA potwierdza ataki. Zaktualizuj do 1.0.1 lub nowszej.
Przepełnienie bufora w FortiOS i FortiSwitchManager pozwala bez hasła uruchomić kod na zaporze. CISA potwierdza ataki, a przestępcy instalują trojana PivotC2. Zaktualizuj FortiOS i sprawdź zapory pod kątem włamania.
Klikając „Akceptuję”, zgadzasz się na przechowywanie plików cookie przez UXU w celu poprawy działania strony, analizy i wsparcia działań marketingowych.