Pomoc zdalna
alerty bezpieczeństwa

CVE-2026-33017: krytyczna luka w Langflow pozwala uruchomić obcy kod bez logowania i jest wykorzystywana w atakach

Langflow, narzędzie do budowania agentów AI, ma krytyczną lukę: każdy, kto widzi serwer w sieci, może uruchomić na nim własny kod, bez konta i bez logowania. CISA wpisała podatność do katalogu aktywnie wykorzystywanych luk. Poniżej mechanizm, skala ryzyka i wymagane działania.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
25 sierpnia 2026 5 min czytania
langflow logo

Ten wpis opisuje podatność CVE-2026-33017 w Langflow, narzędziu do budowania i wdrażania agentów oraz przepływów opartych na sztucznej inteligencji. Z tekstu dowiesz się, na czym luka polega, dlaczego agencja CISA wpisała ją do katalogu aktywnie wykorzystywanych podatności pięć dni po publikacji rekordu i jakie działania powinien podjąć zespół odpowiedzialny za systemy, w których Langflow działa.

Co się stało: zdalne wykonanie kodu bez logowania

Langflow pozwala składać aplikacje AI z gotowych bloków, zwanych węzłami, i uruchamiać je jako przepływy. Część węzłów zawiera kod w języku Python, który serwer wykonuje przy budowaniu przepływu.

Podatność znajduje się w punkcie końcowym POST /api/v1/build_public_tmp/{flow_id}/flow. Ten adres z założenia działa bez uwierzytelnienia, bo obsługuje publiczne przepływy, czyli takie, które twórca chce udostępnić osobom bez konta.

Mechanizm błędu jest prosty. Gdy wywołujący poda opcjonalny parametr data, punkt końcowy używa danych przepływu przesłanych w żądaniu, zamiast definicji zapisanej w bazie. Kod Pythona zawarty w dostarczonych definicjach węzłów trafia bezpośrednio do funkcji exec(), bez żadnego sandboxowania, czyli izolacji od reszty systemu. Wynik to nieuwierzytelnione zdalne wykonanie kodu: atakujący uruchamia własny program na serwerze, nie mając konta ani uprawnień.

Warunek wykorzystania jest jeden: instancja Langflow musi być osiągalna sieciowo. Nie jest potrzebna żadna interakcja użytkownika.

Element

Szczegóły

Identyfikator

CVE-2026-33017

Produkt

Langflow (dostawca langflow-ai, według bazy ENISA)

Podatny punkt końcowy

POST /api/v1/build_public_tmp/{flow_id}/flow

Klasy słabości

CWE-94 (wstrzyknięcie kodu), CWE-95 (dynamiczna ewaluacja kodu), CWE-306 (brak uwierzytelnienia dla krytycznej funkcji)

Ocena NVD

9,8 na 10, poziom krytyczny (CVSS 3.1)

Ocena CNA

9,3 na 10, poziom krytyczny (CVSS 4.0)

Publikacja rekordu NVD

20 marca 2026

Wpis do katalogu CISA KEV

25 marca 2026

Termin wymaganego działania w KEV

8 kwietnia 2026

Status wpisu

aktywny (wersja katalogu z 21 sierpnia 2026)

O co chodzi w prostych słowach

Wyobraź sobie recepcję, która na życzenie gościa odczytuje dokument z firmowego archiwum. Gość nie musi się legitymować, bo usługa jest celowo publiczna. Luka przypomina dodatkowe pole w formularzu: „albo podaj własną treść”. Gdy gość je wypełni, recepcja wykonuje polecenia z jego kartki, zamiast sięgnąć po dokument z archiwum. W przypadku Langflow „kartką” jest definicja przepływu z kodem Pythona, a „wykonaniem” jest uruchomienie tego kodu na serwerze z uprawnieniami procesu.

Scenariusz

Zgodnie z założeniem

Z wykorzystaniem luki

Skąd pochodzi uruchamiana definicja przepływu

Z bazy, zapisana przez twórcę

Z żądania, dostarczona przez atakującego

Kto decyduje o treści kodu

Właściciel przepływu

Dowolna osoba, która widzi adres serwera w sieci

Co serwer robi z kodem w węzłach

Uruchamia kod z zapisanej definicji

Przekazuje obcy kod do exec() bez izolacji

Wymagane konto

Brak, bo punkt końcowy jest publiczny

Nadal brak, a atakujący wykonuje własny kod

Jak wygląda atak krok po kroku

Etap

Działanie atakującego

Reakcja serwera

1

Znajduje w sieci osiągalną instancję Langflow

Brak, to zwykły ruch sieciowy

2

Wysyła żądanie POST na podatny adres z własnym parametrem data

Żądanie zostaje przyjęte bez logowania

3

W definicjach węzłów umieszcza własny kod Pythona

Serwer buduje przepływ z przesłanych danych

4

Czeka na wykonanie kodu

Kod trafia do exec() i działa z uprawnieniami procesu Langflow

Trzy fakty podnoszą wagę sytuacji. Po pierwsze, według NVD publicznie dostępny jest opis sposobu wykorzystania: baza oznacza dwa odsyłacze znacznikiem Exploit. Po drugie, ocena SSVC koordynatora CISA z 26 marca 2026 to: exploitation active (luka jest wykorzystywana), automatable yes (atak nadaje się do automatyzacji), technicalImpact total (pełny wpływ techniczny). Po trzecie, według danych FIRST wynik EPSS z 23 sierpnia 2026 wynosi 0,96177 przy percentylu 0,99876. Model EPSS szacuje więc prawdopodobieństwo wykorzystania na około 96 procent, a ta podatność plasuje się wśród ułamka procenta najwyżej ocenianych rekordów.

CISA nie potwierdza natomiast powiązania tej luki z kampaniami ransomware: pole knownRansomwareCampaignUse w katalogu KEV ma wartość Unknown.

Co jest zagrożone

Zdalne wykonanie kodu oznacza, że atakujący działa na serwerze z uprawnieniami procesu Langflow. Pełny wpływ techniczny (technicalImpact total w ocenie CISA) oznacza, że przejmuje kontrolę nad tym procesem, a przez to nad danymi, które proces obsługuje.

Wskaźnik

Wartość

Źródło

CVSS 3.1

9,8, krytyczny

NVD

CVSS 4.0

9,3, krytyczny

CNA (GitHub)

EPSS na 23 sierpnia 2026

0,96177, percentyl 0,99876

FIRST

Ocena SSVC z 26 marca 2026

active, automatable, total

koordynator CISA

Potwierdzona eksploatacja od

25 marca 2026

ENISA (EUVD-2026-13556)

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Katalog KEV to lista podatności, których wykorzystanie w praktyce CISA potwierdziła. CVE-2026-33017 trafiło tam pięć dni po publikacji rekordu, pod nazwą Langflow Code Injection Vulnerability, a wpis pozostaje aktywny. Dla firm prywatnych obecność w tym katalogu jest sygnałem, że łatanie nie cierpi zwłoki, bo ataki nie są teoretyczną możliwością, tylko obserwowanym zjawiskiem.

Co zrobić: wersje i działania

Według opisu CNA podatne są wersje wcześniejsze niż 1.9.0, a naprawa trafiła do wersji 1.9.0. Tę samą granicę powtarza baza ENISA. Konfiguracja CPE w NVD wskazuje węższy zakres (podatne poniżej 1.8.2) i tej rozbieżności nie udało się rozstrzygnąć. Bezpieczna interpretacja: aktualizacja co najmniej do wersji 1.9.0. NVD oznacza ponadto odsyłacz do repozytorium producenta znacznikiem Patch, wskazując na pojedynczy commit naprawczy.

Uwaga dla zespołów, które łatały Langflow wcześniej: według NVD ta podatność jest odrębna od CVE-2025-3248, naprawionej przez dodanie uwierzytelnienia do punktu końcowego /api/v1/validate/code. Tamta łatka nie chroni przed tą luką.

Priorytet

Działanie

Uzasadnienie

NATYCHMIAST

Ustal, czy w organizacji działa Langflow i w jakiej wersji

Podatne są wersje wcześniejsze niż 1.9.0 (według opisu CNA)

NATYCHMIAST

Sprawdź, czy instancja przyjmuje połączenia z internetu

Warunkiem ataku jest wyłącznie sieciowa dostępność instancji

NATYCHMIAST

Zaplanuj aktualizację do wersji 1.9.0 lub nowszej

Według opisu CNA i ENISA tam trafiła naprawa; CISA wyznaczyła termin 8 kwietnia 2026

PILNE

Zweryfikuj, czy ktoś nie uznał tematu za zamknięty po łatce na CVE-2025-3248

To inna podatność i inny punkt końcowy (według NVD)

PILNE

Do czasu aktualizacji ogranicz dostęp sieciowy do instancji

Zawęża warunek ataku, ale nie zastępuje łatki; potwierdzonego obejścia innego niż aktualizacja nie ma

Pytania kontrolne dla zespołu IT

  • Czy w firmowej infrastrukturze działa Langflow, wliczając środowiska testowe i deweloperskie?
  • W jakiej wersji i czy jest ona wcześniejsza niż 1.9.0?
  • Czy instancja jest osiągalna z internetu albo z sieci dostępnej dla osób spoza zespołu?
  • Czy aktualizacja ma przypisaną datę i właściciela?
  • Czy po wdrożeniu wersji 1.9.0 zweryfikowano, że żadna instancja nie została pominięta?

Podsumowanie: luka o ocenie 9,8, z publicznym opisem wykorzystania i potwierdzoną aktywną eksploatacją, dotyczy funkcji, która z założenia działa bez logowania. Instancja Langflow widoczna w sieci jest przez nią otwartym wejściem na serwer. Według opisu CNA aktualizacja do wersji 1.9.0 zamyka ten wektor; wszystko inne jest jedynie ograniczaniem narażenia do czasu łatki.

Czytaj dalej

Powiązane artykuły

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

alerty bezpieczeństwa

Brama UniFi, która oddaje pliki systemowe każdemu z sieci

Ten wpis tłumaczy, na czym polega błąd oznaczony jako CVE-2026-34909 w urządzeniach Ubiquiti z systemem UniFi OS, dlaczego dostał najwyższą możliwą ocenę zagrożenia, skąd wziął się trzydniowy termin naprawy wyznaczony przez amerykańską agencję bezpieczeństwa i po czym poznać, że sprzęt stojący w

Czytaj artykuł
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ń.