Złośliwy kod w pakiecie eslint-config-prettier (CVE-2025-54313): sprawdź projekty
Cztery wersje popularnego pakietu npm eslint-config-prettier zawierały celowo wstawiony złośliwy kod uruchamiany przy instalacji na Windows. CISA potwierdza wykorzystanie. Sprawdź projekty i wykonawców, a przy trafieniu wymień klucze.
Ten alert jest dla zarządu, CTO i CFO firm, które tworzą oprogramowanie w JavaScript lub zlecają je zewnętrznym wykonawcom (sklepy internetowe, systemy rezerwacji, aplikacje webowe). Werdykt: jeśli w projektach lub u wykonawcy mogły zostać zainstalowane skażone wersje pakietu eslint-config-prettier, sprawdź pliki blokady zależności dziś, a przy trafieniu wymień wszystkie hasła i klucze z zainfekowanych komputerów.
1. CO SIĘ STAŁO? Fakty w pigułce
Amerykańska agencja CISA 22 stycznia 2026 roku dopisała CVE-2025-54313 do katalogu KEV, czyli listy luk, o których ma dowody, że są wykorzystywane w prawdziwych atakach. To nie jest zwykły błąd programisty, tylko celowo wstawiony złośliwy kod. 18 lipca 2025 roku napastnik, który wyłudził phishingiem token opiekuna popularnego pakietu eslint-config-prettier, opublikował w repozytorium npm cztery skażone wersje. Ich instalacja na Windows uruchamiała plik install.js, który odpalał złośliwą bibliotekę node-gyp.dll.
Pakiet jest pobierany ponad 30 milionów razy tygodniowo (wg BleepingComputer). Ta sama akcja objęła kilka innych pakietów tego samego opiekuna. Termin działania wyznaczony przez CISA minął 12 lutego 2026 roku.
Element
Szczegóły
Identyfikator CVE
CVE-2025-54313
Data dodania do CISA KEV
2026-01-22
Termin naprawy wg CISA
2026-02-12 (21 dni od wpisu)
Produkt
Prettier eslint-config-prettier (pakiet npm, narzędzie programistyczne do formatowania kodu)
Wersje zagrożone
eslint-config-prettier 8.10.1, 9.1.1, 10.1.6, 10.1.7. Ta sama akcja: eslint-plugin-prettier 4.2.2 i 4.2.3, synckit 0.11.9, @pkgr/core 0.2.8, napi-postinstall 0.3.1, got-fetch 5.1.1 i 5.1.2, aplikacja Homarr od 1.29.0 do wersji przed 1.30.0. Złośliwy kod działał na systemach Windows, uruchamiany samą instalacją pakietu
Wersje bezpieczne
eslint-config-prettier 10.1.8 (najnowsza), 9.1.2, 8.10.2 lub wersje do 10.1.5 włącznie. Homarr 1.30.0 i nowsze
Typ podatności
Wszczepiony złośliwy kod (atak na łańcuch dostaw oprogramowania); CWE-506
Ocena CVSS
MITRE (zapis w NVD): 7.5 (CVSS 3.1, WYSOKA). Wektor: przez sieć, wysoka złożoność, bez uprawnień i udziału użytkownika, skutki poza pakietem, wysoki wpływ na integralność, niski na poufność
2. O CO CHODZI W PROSTYCH SŁOWACH?
Wyobraź sobie warsztat, który składa maszyny z części kupowanych u dziesiątek dostawców. Pewnego dnia ktoś podszywa się pod jednego z nich i dosyła „nową wersję” zwykłej śrubki. W pudełku, obok śrubek, jest ukryty podsłuch, który włącza się w chwili rozpakowania. Nikt w warsztacie nie popełnił błędu: rozpakowanie zamówionej części to rutyna, a nie decyzja.
Tak działał ten atak. Programy są dziś składane z setek gotowych „części”, czyli pakietów pobieranych z publicznych repozytoriów. Instalacja pakietu może uruchomić dołączony do niego skrypt. W skażonych wersjach ten skrypt uruchamiał złośliwy program. Ofiarą nie był użytkownik gotowej aplikacji, tylko komputer programisty lub serwer budujący oprogramowanie, a tam leżą klucze do repozytoriów, serwerów, chmury i baz danych klientów.
💡 Pakiet npm to gotowy moduł kodu JavaScript pobierany z publicznego repozytorium npm. Atak na łańcuch dostaw to atak na dostawcę komponentów, a nie bezpośrednio na ofiarę. Plik blokady zależności (package-lock.json, yarn.lock, pnpm-lock.yaml) zapisuje dokładne wersje pakietów użytych w projekcie. CI/CD to automatyczne budowanie i wdrażanie oprogramowania. KEV (Known Exploited Vulnerabilities) to katalog CISA z lukami potwierdzonymi jako wykorzystywane w atakach.
Scenariusz
Normalnie
Z podatnością
Programista instaluje zależności projektu
Pobiera pliki narzędzia do formatowania kodu
Uruchamia złośliwy program na Windows
Automatyczna aktualizacja zależności (np. Dependabot, Renovate)
Podbija wersję na najnowszą
Mogła wciągnąć skażoną wersję bez udziału człowieka
Klucze do chmury i serwerów na komputerze programisty
Używane do pracy
Dostępne dla napastnika
Kod w repozytorium GitHub
Zgodny z opublikowanym pakietem
Brak zmian w repozytorium, złośliwe wersje tylko w npm
Gotowa aplikacja u klienta
Bez narzędzi programistycznych
Zwykle nietknięta, chyba że skażony pakiet wbudowano w produkt (np. Homarr)
źródło: pexels.com
3. JAK HAKERZY TO WYKORZYSTUJĄ?
Poniżej typowy przebieg ataku dla tej klasy zagrożenia, oparty na opisie tego incydentu. To scenariusz poglądowy, a nie odtworzenie konkretnego włamania do firmy. Napastnik nie atakuje firmy bezpośrednio: czeka, aż skażony pakiet sam trafi na komputery programistów przy zwykłej instalacji zależności.
Etap
Czas
Akcja hakerów
Wynik
1. Phishing opiekuna
T+0
Mail z fałszywej domeny npnjs.com (podszywającej się pod npmjs.com) wyłudza token opiekuna pakietów
Kontrola nad publikacją pakietów
2. Publikacja skażonych wersji
T+godziny
Wydanie nowych wersji z dodanym skryptem instalacyjnym, bez zmian w repozytorium GitHub
Pułapka w publicznym repozytorium
3. Instalacja u ofiar
T+minuty do godzin
Programiści i automatyczne systemy budowania pobierają „najnowszą” wersję
Złośliwy program uruchomiony na Windows
4. Przejęcie komputera
T+minuty od instalacji
Uruchomienie node-gyp.dll, dostęp do plików i poświadczeń
Napastnik na komputerze programisty
5. Wykorzystanie kluczy
T+dni do tygodni
Użycie kluczy do chmury, repozytoriów, serwerów
Dostęp do systemów firmy i jej klientów
6. Skutek dla firmy
T+tygodnie
Kopiowanie baz danych, podmiana kodu, dalsze ataki na klientów
Wyciek danych, kompromitacja produktu
Konkretne scenariusze zagrożenia
🔴 Scenariusz 1: zewnętrzna pracownia rozbudowuje system rezerwacji przychodni; programista na Windows instaluje zależności 18 lipca 2025, a tygodnie później z konta chmurowego przychodni wychodzi kopia bazy pacjentów wykonana prawidłowym kluczem wykonawcy.
🔴 Scenariusz 2: automatyczny system aktualizacji zależności podbija wersję eslint-config-prettier do skażonej, a serwer budujący na Windows zostaje zainfekowany i napastnik może podmienić budowane oprogramowanie.
🔴 Scenariusz 3: firma używa aplikacji Homarr w wersji 1.29.x zainstalowanej jako gotowy produkt i nie wie, że zawiera skażony komponent.
4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?
Komputery programistów i serwery budujące oprogramowanie mają dostęp do wszystkiego: kodu, serwerów produkcyjnych, chmury i danych klientów. Formalna ocena 7.5 mierzy cechy samego zdarzenia, a nie wartość tego, co leży na zainfekowanej maszynie. Dodatkowa trudność: zdarzenie mogło nastąpić u wykonawcy, poza kontrolą firmy.
Obszar biznesu
Potencjalny wpływ
Czas do wystąpienia
Koszty szacunkowe
Operacyjny
Wymiana wszystkich kluczy i haseł, przebudowa środowisk programistycznych, wstrzymanie wdrożeń
Dni od wykrycia
20 tys. do 200 tys. PLN (prace zespołu, opóźnienia projektów)
Bezpieczeństwo danych
Kradzież kodu, poświadczeń i danych klientów z systemów, do których miał dostęp programista
Dni do tygodni
30 tys. do 300 tys. PLN (analiza powłamaniowa, audyt kodu)
Finansowy
Koszty zewnętrznych specjalistów, rachunki za nadużyte zasoby chmurowe
Tygodnie
50 tys. do 500 tys. PLN łącznie
Reputacyjny
Utrata zaufania klientów, jeśli skażony produkt lub wyciek dotknął ich danych
Miesiące
30 tys. do 400 tys. PLN (utracone kontrakty)
Prawny
Przy wycieku danych osobowych zgłoszenie do UODO w 72 godziny; możliwa kara RODO do 20 mln EUR lub 4% rocznego obrotu, zależnie od okoliczności; spory z wykonawcą o odpowiedzialność
72 godziny od wykrycia
20 tys. do 150 tys. PLN (prawnicy, obsługa zgłoszeń), bez ewentualnej kary
Interpretacja: wpływ jest wysoki, bo zainfekowana maszyna trzyma klucze do systemów firmy, ale prawdopodobieństwo jest niskie, bo skażone wersje były dostępne krótko w lipcu 2025 roku i zostały wycofane; ryzyko rośnie, jeśli skażona wersja nadal widnieje w plikach blokady lub w starych kopiach środowisk.
5. CO MUSISZ ZROBIĆ NATYCHMIAST?
Lp.
Priorytet
Działanie
Termin
Odpowiedzialny
1
🔴 NATYCHMIAST
Przeszukać pliki blokady zależności we wszystkich projektach i historii repozytoriów pod kątem skażonych wersji (lista w sekcji 1)
Dziś
Kierownik zespołu programistów
2
🔴 NATYCHMIAST
Poprosić zewnętrznych wykonawców o pisemne potwierdzenie takiego sprawdzenia
Dziś
CTO
3
🔴 NATYCHMIAST
Przy trafieniu: odłączyć zainfekowane komputery i serwery budujące, zabezpieczyć je do analizy
Dziś
Administrator IT
4
🟠 PILNIE
Przy trafieniu: wymienić wszystkie hasła, tokeny i klucze (chmura, repozytoria, npm, serwery), do których był dostęp z zainfekowanej maszyny
Do 2 dni
Zespół programistów / administrator
5
🟠 PILNIE
Zaktualizować eslint-config-prettier do 10.1.8 (lub 9.1.2, 8.10.2), usunąć katalog node_modules i pamięć podręczną npm, zainstalować zależności od nowa
Do 3 dni
Zespół programistów
6
🟠 PILNIE
Sprawdzić wersję aplikacji Homarr, jeśli jest używana, i zaktualizować do 1.30.0 lub nowszej
Do 3 dni
Administrator IT
7
🟡 WAŻNIE
Wprowadzić przypinanie dokładnych wersji pakietów i przegląd zmian zależności przed scaleniem
Do 30 dni
Kierownik zespołu programistów
8
🟡 WAŻNIE
Zapisać w umowach z wykonawcami: dostęp czasowy i imienny, osobne klucze dla testów i produkcji, dane testowe bez danych osobowych, lista użytych komponentów przy odbiorze
Do 60 dni
CTO / CFO
Jeśli aktualizacja nie jest dostępna
Czyste wersje pakietu zostały wydane jeszcze 18 lipca 2025 roku, a skażone oznaczono jako wycofane. Obejścia w klasycznym sensie nie ma: rozwiązaniem jest wymiana wersji, a przy infekcji także wymiana poświadczeń. Oceny efektywności to ocena ekspercka.
Czasowa miara ochronna
Efektywność
Łatwość wdrożenia
Instalacja zależności z opcją wyłączającą skrypty instalacyjne (np. npm ci --ignore-scripts)
Wysoka wobec tego typu ataku
Średnia: część pakietów wymaga skryptów
Przypięcie dokładnych wersji i instalacja wyłącznie z pliku blokady (npm ci)
Wysoka wobec nagłych skażonych wydań
Łatwa
Opóźnienie przyjmowania nowych wersji pakietów o kilka dni w narzędziach automatycznych
Średnia do wysokiej: skażone wersje zwykle są wykrywane w ciągu godzin lub dni
Budowanie oprogramowania w odizolowanych środowiskach bez stałych kluczy produkcyjnych
Wysoka jako ograniczenie skutków
Średnia do trudnej
Przed i po działaniu
Stan
Przed działaniem
Po działaniu
Wersje pakietów w projektach
Nieznane, możliwe skażone
Sprawdzone, czyste wersje w plikach blokady
Klucze i hasła programistów
Mogły wyciec
Wymienione tam, gdzie było trafienie
Wykonawcy zewnętrzni
Brak wiedzy o ich środowiskach
Pisemne potwierdzenie sprawdzenia
Dostęp wykonawców do produkcji
Stały, szeroki
Czasowy, imienny, osobne klucze
Aktualizacje zależności
Automatycznie „najnowsze”
Przypięte wersje, przegląd zmian
6. KONTEKST I SKALA ZAGROŻENIA
Aspekt
Informacja
Czy jest wykorzystywana?
TAK (potwierdzone przez CISA). Skażone wersje były opublikowane i pobierane w lipcu 2025 roku
Grupy przestępcze
Brak publicznych informacji o konkretnej grupie; atak poprzedziła kampania phishingowa z fałszywą domeną npnjs.com wymierzona w opiekunów pakietów npm
Kampanie ransomware
Brak potwierdzenia (CISA: Unknown)
Ocena CVSS
7.5 WYSOKA wg MITRE (CVSS 3.1)
PoC dostępny publicznie?
Nie dotyczy w zwykłym sensie: złośliwy kod był w samych pakietach; NVD oznacza analizy StepSecurity i BleepingComputer jako opisy wykorzystania
Liczba atakowanych firm
Brak publicznych danych o liczbie ofiar; sam pakiet eslint-config-prettier ma ponad 30 mln pobrań tygodniowo
Prognoza EPSS
Ok. 4,1% szansy próby wykorzystania w 30 dni, wyżej niż 90% śledzonych podatności (wg analizy źródłowej)
Reakcja dostawców
Red Hat oświadczył, że żaden jego produkt nie zawiera skażonych wersji
Sygnały zagrożenia dla CVE-2025-54313CVSS 3.1 (MITRE) 7.5/10 ███████████████░░░░░ WYSOKAEPSS (próba w 30 dni) ~4,1% █░░░░░░░░░░░░░░░░░░░ percentyl 90+CISA KEV TAK ████████████████████ wykorzystanie potwierdzoneZłośliwy kod celowy TAK ████████████████████ atak na łańcuch dostawRansomware (CISA) Unknown ░░░░░░░░░░░░░░░░░░░░ brak potwierdzenia
Linia czasu incydentu
2025-07-18 Publikacja skażonych wersji w npm: 9.1.1, 8.10.1, 10.1.6 i 10.1.7 (ok. 15:51 do 16:13 UTC)2025-07-18 Zgłoszenie społeczności w repozytorium GitHub; czyste wydania 10.1.8 (18:40 UTC), 8.10.2 i 9.1.2 (ok. 19:18 UTC)2025-07-19 Publikacja CVE-2025-54313 w NVD; opisy phishingu opiekuna2026-01-22 CISA dodaje wpis do katalogu KEV2026-02-12 Termin działania wg CISA2026-06-17 Ostatnia aktualizacja wpisu w NVD ... pół roku od publikacji do wpisu w KEV2026-09-17: TUTAJ JESTEŚMY
7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO
Czy którykolwiek plik blokady w naszych projektach zawiera eslint-config-prettier 8.10.1, 9.1.1, 10.1.6 lub 10.1.7 albo inne skażone pakiety z listy?
TAK / NIE
🔴
2
Czy ktoś instalował zależności na Windows w dniach 18 i 19 lipca 2025?
TAK / NIE
🔴
3
Czy nasi wykonawcy potwierdzili na piśmie, że nie mieli skażonych wersji?
TAK / NIE, data: [data]
🔴
4
Jakie klucze i hasła są przechowywane na komputerach programistów i serwerach budujących?
[lista]
🟠
5
Czy automatyczne narzędzia mogą same podbijać wersje pakietów bez przeglądu?
TAK / NIE
🟠
6
Czy używamy aplikacji Homarr i w jakiej wersji?
TAK / NIE, [wersja]
🟠
7
Czy wykonawcy mają stały dostęp do systemów produkcyjnych i prawdziwych danych klientów?
TAK / NIE
🟡
Pytania diagnostyczne dla managera
✓ Czy wiem, z jakich komponentów składa się oprogramowanie, za które płacę?
✓ Czy przy odbiorze prac dostajemy od wykonawcy listę użytych komponentów?
✓ Czy dostęp wykonawców do naszych systemów wygasa po zakończeniu prac?
✓ Czy mamy procedurę zgłoszenia naruszenia danych do UODO w 72 godziny?
✓ Czy reagujemy na publiczne informacje o zagrożeniach, czy czekamy na oficjalne ostrzeżenia?
Podsumowanie
CVE-2025-54313 to celowo wstawiony złośliwy kod w czterech wersjach pakietu eslint-config-prettier i kilku pokrewnych pakietach, uruchamiany samą instalacją na Windows. Zagrożone są komputery programistów i serwery budujące, a przez nie klucze do systemów firmy, więc zadanie na dziś to sprawdzić pliki blokady u siebie i u wykonawców, a przy trafieniu wymienić wszystkie poświadczenia.
Czytaj dalej
Powiązane artykuły
Zestaw zmienia się codziennie, więc przy kolejnej wizycie zobaczysz inny wycinek bloga.
Błąd w logowaniu platformy Kestra OSS pozwala bez hasła tworzyć i uruchamiać przepływy pracy, czyli wykonywać dowolne polecenia jako root. Microsoft opisał włamanie, CISA potwierdza ataki. Zaktualizuj dziś.
Google i CISA potwierdzają ukierunkowane ataki na lukę w modemie telefonów Pixel, które nie wymagają działania użytkownika. Zaktualizuj telefony do poziomu poprawek 2026-09-05, zaczynając od zarządu.
Błąd w NetScaler ADC i Gateway, opisany przez producenta jako awaria, pozwala według badaczy przejąć bramę VPN bez hasła. Publiczny kod istnieje, ataki trwają. Zaktualizuj urządzenia i sprawdź ślady 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.