Pomoc zdalna
alerty bezpieczeństwa

Jenkins (CVE-2017-1000353): przejęcie serwera automatyzacji bez logowania, luka wraca w atakach

Stara luka w Jenkinsie pozwala bez hasła uruchomić dowolny kod przez kanał poleceń CLI. Gotowy exploit jest publiczny od lat, a CISA potwierdziła ataki w 2025 roku. Zaktualizuj Jenkinsa i wyłącz stary protokół CLI.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
17 września 2026 8 min czytania
Ilustracja procesu CI/CD i automatyzacji testów

Ten alert jest dla zarządu, CTO i CFO firm, które mają własne oprogramowanie, sklep z modyfikacjami lub aplikację utrzymywaną przez wykonawcę, bo tam często działa serwer automatyzacji Jenkins. Werdykt: jeśli Jenkins ma wersję 2.56 lub starszą (LTS 2.46.1 lub starszą), zaktualizuj go lub wyłącz stary kanał CLI dziś, bo gotowy kod ataku jest publiczny od lat, a CISA potwierdziła aktywne wykorzystanie w 2025 roku.

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

Amerykańska agencja CISA 2 października 2025 roku dopisała podatność CVE-2017-1000353 do katalogu KEV, czyli listy luk, o których ma dowody, że są wykorzystywane w prawdziwych atakach. Luka została ogłoszona przez projekt Jenkins 26 kwietnia 2017 roku, a mimo to osiem lat później nadal jest używana.

Jenkins przyjmował przez kanał poleceń (CLI) spreparowane obiekty Java i odtwarzał je bez sprawdzenia nadawcy. Istniejąca ochrona oparta na liście zakazanych typów dawała się obejść. Skutek: dowolny program uruchomiony na serwerze bez logowania. Serwer automatyzacji przechowuje klucze do repozytoriów kodu, serwerów produkcyjnych i usług, więc jego przejęcie otwiera drogę dalej.

Termin naprawy wyznaczony przez CISA minął 23 października 2025 roku, prawie rok temu.

Element

Szczegóły

Identyfikator CVE

CVE-2017-1000353

Data dodania do CISA KEV

2025-10-02

Termin naprawy wg CISA

2025-10-23 (21 dni od wpisu)

Produkt

Jenkins (serwer automatyzacji budowania i wdrażania oprogramowania); także jako składnik innych produktów, np. Oracle Communications Cloud Native Core Automated Test Suite 1.9.0

Wersje zagrożone

Jenkins 2.56 i starsze (linia główna) oraz LTS 2.46.1 i starsze

Wersje bezpieczne

Pierwsze z poprawką: 2.57 (linia główna) i LTS 2.46.2. Najnowsze wydania: 2.582 i LTS 2.568.3

Typ podatności

Deserializacja niezaufanych danych prowadząca do zdalnego wykonania kodu; CWE-502 (wg NVD; w katalogu KEV klasa nie jest przypisana)

Ocena CVSS

NVD i CISA: 9.8 KRYTYCZNA (CVSS 3.1). NVD w starszej skali CVSS 2.0: 7.5. Red Hat: 8.1, waga „istotna” (wyższa złożoność ataku). Oracle: 9.8. Atak przez sieć, bez logowania, bez udziału użytkownika

2. O CO CHODZI W PROSTYCH SŁOWACH?

Wyobraź sobie recepcję biurowca z listą osób, których nie wolno wpuszczać. Każdy, kogo nie ma na liście, przechodzi. Ktoś przychodzi w przebraniu kuriera, którego na liście nie ma, a w paczce niesie drugą osobę. Recepcja sprawdza tylko kuriera, a gość z paczki wchodzi prosto do pokoju, gdzie wiszą klucze do wszystkich biur w budynku.

Tak działała ta luka. Jenkins miał listę zakazanych typów obiektów, ale napastnik opakowywał właściwy ładunek w obiekt spoza listy (SignedObject). Rozpakowanie zewnętrznej warstwy uruchamiało osobne odczytywanie wnętrza, którego nikt nie sprawdzał. A Jenkins to właśnie pokój z kluczami: ma dostęp do kodu, serwerów produkcyjnych i usług firmy.

💡 Jenkins to serwer, który automatycznie pobiera kod, buduje aplikację, testuje ją i wgrywa na serwery. CLI to kanał do wydawania poleceń serwerowi bez przeglądarki. Deserializacja to odtworzenie obiektu z przesłanych danych, podczas którego program wykonuje instrukcje z tych danych. Lista zakazanych (blacklist) chroni tylko przed tym, co na nią wpisano; lista dozwolonych (allowlist) przed wszystkim innym.

Scenariusz

Normalnie

Z podatnością

Połączenie do kanału CLI bez konta

Brak możliwości działania

Uruchomienie dowolnego programu na serwerze

Ochrona listą zakazanych typów

Blokuje znane typy

Omijana przez obiekt opakowujący

Klucze i hasła w Jenkinsie

Używane tylko do automatycznych wdrożeń

Wykradane przez napastnika

Wdrożenie nowej wersji aplikacji

Kod od zespołu programistów

Możliwa podmiana kodu, który trafia na produkcję jako „legalna” aktualizacja

Jenkins wbudowany w inny produkt

Widoczny na liście komponentów

Ukryty pod inną nazwą handlową

Mosiężna tabliczka z napisem recepcja i stary dzwonek 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. CISA ocenia atak jako automatyzowalny, ze skutkiem całkowitym, a gotowy kod ataku jest dostępny w bazie Exploit-DB.

Etap

Czas

Akcja hakerów

Wynik

1. Skanowanie

T+0 min

Automatyczne wyszukiwanie serwerów Jenkins i odczyt wersji

Lista podatnych serwerów

2. Atak

T+1 min

Wysłanie spreparowanego obiektu przez kanał CLI gotowym narzędziem

Kod napastnika działa na serwerze

3. Kradzież kluczy

T+10 min

Odczyt zapisanych haseł, kluczy SSH, tokenów do repozytoriów i chmury

Dostęp do systemów firmy

4. Utrwalenie

T+1 godz.

Dodanie własnego zadania lub konta w Jenkinsie

Stały dostęp

5. Wykorzystanie

T+1 do 30 dni

Podmiana kodu w procesie wdrożenia, wejście na serwery produkcyjne, koparki kryptowalut

Zainfekowane wydania, kradzież danych

6. Skutek

T+tygodnie

Wyciek danych klientów, szyfrowanie serwerów lub długotrwałe nadużycia

Kosztowna weryfikacja wszystkich wydań

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Konkretne scenariusze zagrożenia

  • 🔴 Scenariusz 1: Jenkins pracowni utrzymującej sklep internetowy jest dostępny z internetu; napastnik dopisuje do kodu sklepu skrypt przechwytujący dane kart płatniczych, który trafia na produkcję przy najbliższym wdrożeniu.
  • 🔴 Scenariusz 2: z Jenkinsa napastnik pobiera klucze do chmury i uruchamia na koszt firmy dziesiątki serwerów do kopania kryptowalut.
  • 🔴 Scenariusz 3: firma kupiła gotowy system testowy, w którym Jenkins jest składnikiem pod inną nazwą; nikt go nie aktualizuje, bo nikt nie wie, że tam jest.

4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?

Serwer automatyzacji to skrzynka z kluczami do wszystkich drzwi: repozytorium kodu, serwerów produkcyjnych, chmury i poczty. Przejęcie go pozwala podmienić to, co firma wypuszcza klientom. Stare maszyny wewnętrzne bywają pomijane w aktualizacjach, a gotowy exploit oznacza, że wystarczy być widocznym.

Obszar biznesu

Potencjalny wpływ

Czas do wystąpienia

Koszty szacunkowe

Operacyjny

Wstrzymanie wdrożeń, odbudowa serwera, wymiana wszystkich kluczy

Dni

30 tys. do 200 tys. PLN

Bezpieczeństwo danych

Kradzież kodu źródłowego, haseł, danych klientów z systemów produkcyjnych

Godziny od ataku

50 tys. do 300 tys. PLN (analiza wszystkich wydań)

Finansowy

Rachunki za nadużytą chmurę, okup, koszty specjalistów

Dni do tygodni

50 tys. do 1 mln PLN łącznie

Reputacyjny

Klienci dostali zainfekowaną wersję aplikacji lub sklepu

Miesiące

100 tys. do 1 mln PLN

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); roszczenia klientów przy wycieku danych kart

72 godziny od wykrycia

30 tys. do 200 tys. PLN (prawnicy, obsługa zgłoszeń), bez ewentualnej kary

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

Macierz ryzyka dla Jenkins 2.56 / LTS 2.46.1 lub starszego osiągalnego z sieci Wpływ 5 | . . . . ■ ← KRYTYCZNE 4 | . . . . . 3 | . . . . . 2 | . . . . . 1 | . . . . . +-------------------- 1 2 3 4 5 Prawdopodobieństwo

Interpretacja: ryzyko krytyczne, bo luka nie wymaga logowania, istnieje publiczny exploit, CISA potwierdza zautomatyzowane ataki, EPSS jest bliski 100%, a przejęty serwer daje klucze do całej infrastruktury wdrożeniowej.

5. CO MUSISZ ZROBIĆ NATYCHMIAST?

Lp.

Priorytet

Działanie

Termin

Odpowiedzialny

1

🔴 NATYCHMIAST

Ustalić, czy firma lub wykonawca używa Jenkinsa (także wbudowanego w inne produkty) i w jakiej wersji

Dziś

CTO / wykonawca

2

🔴 NATYCHMIAST

Jeśli wersja jest podatna: wyłączyć stary kanał CLI oparty na serializacji Java lub odciąć serwer od sieci zewnętrznej

Dziś

Administrator Jenkinsa

3

🔴 NATYCHMIAST

Sprawdzić, czy Jenkins jest dostępny z internetu; jeśli tak, ukryć go za VPN

Dziś

Administrator sieci

4

🟠 PILNIE

Zaktualizować Jenkinsa do aktualnego wydania LTS (co najmniej 2.46.2, zalecane najnowsze) wraz z wtyczkami

Do 3 dni

Administrator Jenkinsa

5

🟠 PILNIE

Wymienić wszystkie hasła, klucze SSH i tokeny zapisane w Jenkinsie

Do 7 dni

DevOps

6

🟠 PILNIE

Przejrzeć zadania, konta i ostatnie wdrożenia pod kątem nieznanych zmian

Do 7 dni

Zespół programistów / bezpieczeństwa

7

🟡 WAŻNIE

Uzyskać od dostawców listę składników gotowych produktów (w tym Jenkinsa)

Do 30 dni

CTO

Jeśli aktualizacja nie jest dostępna

Projekt Jenkins wydał poprawki w 2017 roku, a od tamtej pory kolejne wydania. Jeśli serwera nie można dziś zaktualizować, bo obsługuje proces produkcyjny, jest skuteczne działanie pośrednie. Oceny efektywności to ocena ekspercka.

Czasowa miara ochronna

Efektywność

Łatwość wdrożenia

Wyłączenie starego protokołu CLI opartego na serializacji Java (w wydaniach z poprawką jest wyłączony domyślnie)

Wysoka: zamyka drogę tego ataku

Łatwa: jedna zmiana konfiguracji

Odcięcie Jenkinsa od internetu, dostęp tylko przez VPN

Wysoka wobec automatów z internetu

Średnia

Ograniczenie kluczy w Jenkinsie do niezbędnych, osobne klucze dla każdego środowiska

Średnia: ogranicza skutki przejęcia

Średnia

Monitorowanie nowych zadań, kont i procesów na serwerze

Niska jako ochrona, przydatna do wykrycia

Średnia

Przed i po działaniu

Stan

Przed działaniem

Po działaniu

Kanał CLI

Przyjmuje obiekty od każdego

Stary protokół wyłączony, nowy przez HTTP

Dostępność z internetu

Możliwa

Tylko przez VPN

Klucze i hasła

Potencjalnie wykradzione

Wymienione

Wersja Jenkinsa

Sprzed 2017 roku

Aktualne wydanie LTS

Zgodność z terminem CISA

Zaległość od 23 października 2025

Luka zamknięta i udokumentowana

6. KONTEKST I SKALA ZAGROŻENIA

Aspekt

Informacja

Czy jest wykorzystywana?

TAK (potwierdzone przez CISA); atak automatyzowalny, skutek całkowity

Grupy przestępcze

Brak publicznych informacji

Kampanie ransomware

Brak potwierdzenia (CISA: Unknown)

Ocena CVSS

9.8 KRYTYCZNA (NVD i CISA, CVSS 3.1); 8.1 (Red Hat); 7.5 (NVD, CVSS 2.0)

PoC dostępny publicznie?

TAK: gotowy exploit w Exploit-DB (41965) i Packet Storm

Liczba atakowanych firm

Brak publicznych informacji

Prognoza EPSS

0,997, czyli praktycznie pewność próby wykorzystania (wg analizy źródłowej)

Inne produkty

Oracle odnotował lukę w aktualizacji z kwietnia 2022 (Communications Cloud Native Core Automated Test Suite 1.9.0)

Inne rejestry

Europejska baza ENISA: EUVD-2022-1921

Sygnały zagrożenia dla CVE-2017-1000353 CVSS 3.1 (NVD/CISA) 9.8/10 ████████████████████ KRYTYCZNA EPSS (wg źródła) ~99,7% ████████████████████ PRAWIE PEWNE CISA KEV TAK ████████████████████ ataki potwierdzone Publiczny exploit TAK ████████████████████ Exploit-DB Wiek luki 8 lat ████████████████████ stare serwery nadal widoczne
Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Linia czasu incydentu

2017-04-26 Projekt Jenkins publikuje poprawkę (2.57, LTS 2.46.2) 2018-01-29 Publikacja rekordu CVE w NVD (9 miesięcy później) 2022-04 Oracle ujmuje lukę w kwartalnej aktualizacji bezpieczeństwa 2025-10-02 CISA dodaje lukę do katalogu KEV 2025-10-23 Termin naprawy wg CISA dla agencji federalnych 2026-06-17 Ostatnia aktualizacja wpisu w NVD ... prawie 11 miesięcy od terminu CISA 2026-09-17: TUTAJ JESTEŚMY

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

Komunikat projektu Jenkins: jenkins.io/security/advisory/2017-04-26 . Wpis w NVD: nvd.nist.gov/vuln/detail/CVE-2017-1000353 . Aktualizacja Oracle: cpuapr2022 .

Lp.

Zadanie

Kto

Deadline

1

Zapytać zespół i wykonawców: czy mamy Jenkinsa i w jakiej wersji

CTO

DZISIAJ

2

Zapytać: czy Jenkins jest dostępny z internetu

CTO

DZISIAJ

3

Zatwierdzić wyłączenie starego CLI lub odcięcie serwera do czasu aktualizacji

CTO

DZISIAJ

4

Zatwierdzić aktualizację i wymianę wszystkich kluczy zapisanych w Jenkinsie

CTO

DO JUTRA

5

Sprawdzić rachunki za chmurę pod kątem nietypowych kosztów

CFO

DO JUTRA

6

Zarezerwować budżet na przegląd ostatnich wydań aplikacji pod kątem podmian kodu

CFO

DO JUTRA

7

Dopisać do umów z dostawcami obowiązek podania listy składników i ich aktualizacji

CFO

DO JUTRA

8. PYTANIA DO TWOJEGO ZESPOŁU IT

#

Pytanie

Odpowiedź

Priorytet

1

Czy używamy Jenkinsa, także w produktach kupionych od dostawców?

TAK / NIE

🔴

2

Jaka wersja Jenkinsa działa u nas?

[wersja]

🔴

3

Czy Jenkins jest dostępny z internetu?

TAK / NIE

🔴

4

Czy stary protokół CLI jest wyłączony?

TAK / NIE

🔴

5

Kiedy ostatnio wymieniono hasła i klucze zapisane w Jenkinsie?

[data]

🟠

6

Czy w Jenkinsie są zadania lub konta, których nikt nie rozpoznaje?

TAK / NIE

🟠

7

Kto odpowiada za aktualizację Jenkinsa i jego wtyczek?

[osoba]

🟡

Pytania diagnostyczne dla managera

  • ✓ Czy wiem, która maszyna w firmie ma klucze do wszystkich naszych serwerów?
  • ✓ Czy stare, „działające od lat” narzędzia wewnętrzne są w ogóle aktualizowane?
  • ✓ Czy wiemy, z jakich składników zbudowane są produkty kupione od dostawców?
  • ✓ Czy zauważylibyśmy, że ktoś podmienił kod w procesie wdrożenia?
  • ✓ Czy lista podatności, którą dostaję, podaje źródło oceny CVSS?

Podsumowanie

CVE-2017-1000353 to luka z 2017 roku, która pozwala bez logowania uruchomić dowolny kod na serwerze Jenkins przez kanał CLI. Gotowy exploit jest publiczny, CISA potwierdziła ataki w 2025 roku, a przejęty Jenkins daje klucze do kodu i serwerów produkcyjnych. Wyłączenie starego CLI, aktualizacja i wymiana kluczy zamykają to ryzyko, a lista składników od dostawców pozwala znaleźć Jenkinsa ukrytego pod inną nazwą.

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ń.